Mein Verständnis von diesem TechNet - Artikel , pro der Seite , die mich dorthin gebracht *, ist , dass ich die Windows - Firewall so konfigurieren , dass alle eingehenden Datenverkehr auf einem beliebigen Port zu ermöglichen , um eine bestimmte ausführbare Datei verwendet wird.
Mir ist klar, dass die defacto-Antwort wahrscheinlich "Tu das nicht" lautet. Bitte verstehe . Ich führe Visual Studio und IIS Express in einer virtuellen Maschine aus und möchte zu Testzwecken eine Verbindung vom Host-Betriebssystem herstellen können. Daher bin ich nicht wirklich besorgt über die Sicherheitsauswirkungen des Öffnens aller von IIS Express verwendeten Ports.
Ich habe eine eingehende Regel mit dem Programm auf erstellt. Dies %ProgramFiles% (x86)\IIS Express\iisexpress.exe
ist die ausführbare Datei, die gemäß dem Task-Manager ausgeführt wird. Alle anderen Regelspezifikationen bleiben leer (jede lokale Adresse, jede entfernte Adresse und jeder lokale Port, jeder entfernte Port, "alle" zulässigen Benutzer, "alle" zulässigen Computer). Die Verbindung funktioniert jedoch nur, wenn ich eine Regel für den bestimmten Port habe, der von IIS Express bereitgestellt wird.
Da dies mein Leben erleichtern würde (und im Prinzip, da Technet sagt, dass es funktionieren sollte), möchte ich lieber nicht für jede von mir erstellte App eine Firewall-Regel hinzufügen.
* Aufgabe "Erstellen Sie eine Regel, mit der ein Programm eingehenden Netzwerkverkehr an allen erforderlichen Ports abhören und akzeptieren kann."
quelle
Antworten:
Es gibt ein paar Probleme, auf die Sie hier stoßen. Einer ist , dass
iisexpress.exe
ist nicht wirklich der Prozess verantwortlich für den Verkehr HTTP hören. Diese Funktionalität wirdhttp.sys
als Kernel-Modus-Teil des Windows-Netzwerkstapels implementiert . (Dies wurde aus Leistungsgründen durchgeführt. Weitere Informationen finden Sie unter Einführung in IIS-Architekturen .) Das Erstellen einer Regel füriisexpress.exe
wird daher nichts bewirken.Zweitens
http.sys
können Programme standardmäßig nicht ausgeführt werden, wenn Nicht-Administratoren andere Computer abhören. Gemäß Serving External Traffic mit WebMatrix müssen Sie diesen Befehl in einer administrativen Eingabeaufforderung ausführen, damit alle Benutzer andere Computer abhören können überhttp.sys
:Ersetzen Sie ihn
MACHNAME
durch den Hostnamen, der für die Kontaktaufnahme mit der Site verwendet wird, undPORT
durch den Port des Datenverkehrs. Ich habe gelesen, dass die Verwendung*
eines bestimmten Hostnamens das Abhören aller Namen / Schnittstellen ermöglicht, aber ich habe dies nicht persönlich getestet, und einige Dokumentationen verwenden+
stattdessen. In beiden Fällen können Sie nach dem Festlegen der ACL eine eingehende Firewall-Regel für den Port erstellen .Weiterführende Literatur: Konfigurieren von HTTP und HTTPS .
Nebenbemerkung: Es gibt eine tatsächliche Umgebungsvariable, die auf die 32-Bit-Version von Programmdateien verweist :
%PROGRAMFILES(X86)%
. (Der Weg war jedoch nicht dein Problem.)quelle