In welchen Szenarien verwende ich `netsh http add urlacl`?

3073
Royi Namir

Ich versuche zu verstehen, in welchen Szenarien ich einen solchen Befehl verwenden muss:

netsh http add urlacl url=http://server1:1234/ user=Everyone 

Verwendet man die hostsDatei, in der ich eine bestimmte Adresse an meinen Computer anschließen kann? (Ich glaube nicht)

Die Dokumente sind für mich nicht so klar:

Netsh ist ein Befehlszeilen-Skriptprogramm, mit dem Sie die Netzwerkkonfiguration eines Computers, der gerade ausgeführt wird, entweder lokal oder remote anzeigen oder ändern können. Netsh bietet auch eine Skriptfunktion, mit der Sie eine Befehlsgruppe im Stapelmodus auf einem bestimmten Computer ausführen können. Netsh kann auch ein Konfigurationsskript in einer Textdatei speichern, um es zu archivieren oder um andere Server zu konfigurieren.

Frage:

Kann jemand bitte ein reales Szenario (+ Implementierung) angeben, wo ich es verwenden möchte?

Zusatzinfo: Ich habe diese Frage gelesen , wo ein Typ, der versucht hat (über C #) zuzugreifen:

http://localhost:1234 funktioniert, aber

http://server1:1234 schlägt fehl

(Allerdings - ich verstehe nicht, warum er die hostsDatei nicht verwendet hat, um sie zu lösen.) - Aber dann hat eine andere Person geantwortet, netshdie die Arbeit erledigen wird.
Also vermisse ich hier etwas.

4
Ich weiß genau, für welche Datei wir die letzten 1 Jahre täglich verwenden. Ich verstehe nicht, wie der Code in meiner Frage sich von der Hosts-Datei unterscheidet. Es scheint, dass beide das gleiche tun. Und leider haben Sie in Ihrer Antwort keinen Unterschied gemacht Royi Namir vor 6 Jahren 0
Ich meinte Befehl nicht Code. Trotzdem danke. Royi Namir vor 6 Jahren 0

1 Antwort auf die Frage

8
harrymc

Sie würden dies netsh httpbeim Ändern der Konfiguration von verwenden http.sys, die sich völlig von der hostsDatei unterscheidet und auf einer viel niedrigeren Windows-Ebene arbeitet. Diese Ebene ist die Ebene, die die Ausführung eines HTTP-Servers lokal auf Ihrem Computer ausführt . Es sind also Anfragen, die auf Ihrem Computer eingehen, und nicht die, die an das Internet gesendet werden .

Dies ist die Architektur in Windows zum Bereitstellen von URL-Anforderungen:

http.sys-architektur

http.sys ist der Treiber, der auf HTTP-Datenverkehr wartet und Anforderungen basierend auf der URL an Prozesse weiterleitet, sodass mehrere Prozesse HTTP-Datenverkehr an demselben Port überwachen können.

http.syswurde in Windows Server 2003 eingeführt. Vorher haben Anwendungen gerade einen Socket auf einem Endpunkt (IP: Port) geöffnet, eingehenden Datenverkehr überwacht und analysiert. Das Problem bestand darin, dass es für alle Anwendungen unmöglich war, Port 80 (http) und 443 (https) zu verwenden, da mit dem Socket-Modell immer nur eine Anwendung einen Endpunkt abhören kann.

Wenn der IIS- Web-Server (Internet Information Services) oder eine Anwendung, die die HTTP-Server-API verwendet, einen HTTP-Anforderungspfad überwacht, müssen sie ein URL-Präfix registrieren http.sys. Wir nennen diesen Prozess Registrierung .

Wenn eine eingehende Anforderung von http.sysder richtigen registrierten Anwendung abgerufen und an diese übermittelt wird, wird dies als Routing bezeichnet .

Jede Anwendung, die im Administratormodus ausgeführt wird, kann sich für eine URL registrieren. Eine Anwendung, die kein Administrator ist, muss verwenden netsh http add urlacl, um die Anforderung zu erhalten.

Schlussfolgerung: Da Sie keinen einfachen URL-Server erstellen, der im Nicht-Administrator-Modus ausgeführt wird, haben Sie keinen Grund zur Verwendung netsh http add urlacl.

Verweise :

Können Sie bitte ein Szenario angeben, in dem etwa so etwas wie "ein Benutzer möchte sich mit Ihrem iis verbinden ..." Royi Namir vor 6 Jahren 0
Dies ist eine Methode für Anwendungen, um parallel mit IIS zu arbeiten. Wenn es sich für ein URL-Präfix registriert, erhält die Anwendung alle ihre Anforderungen direkt und nicht über IIS. Dies bedeutet, dass sie nicht als Erweiterung von IIS geschrieben werden muss und auch nicht einmal IIS installiert werden muss (dies ist in der Theorie der Fall. Sie wissen nicht, wie gut http.sys in der Praxis von IIS unabhängig ist. harrymc vor 6 Jahren 0