550 Stimmen

Wie aktiviert man externe Anfragen in IIS Express?

Wie kann ich Fernabfragen in IIS Express aktivieren? Scott Guthrie schrieb, dass dies möglich ist aber er hat nicht gesagt, wie.

35 Stimmen

Dafür gibt es eine kostenlose VS-Erweiterung, die wir geschrieben haben visualstudiogallery.msdn.microsoft.com/

0 Stimmen

@JimW Jim, sind Sie der Ersteller des Plugins? Könnten Sie bitte erklären, wie dieses Wunderwerk der Softwaretechnik funktioniert?

0 Stimmen

@IanWarburton Danke, dass Sie es ein Wunder nennen! Es ist ein Reverse-Proxy-Server.

420voto

Damian Edwards Punkte 7194

Auf der Website des IIS-Teams gibt es jetzt einen Blogbeitrag, in dem erklärt wird, wie man Fernverbindungen auf IIS Express aktivieren . Hier ist der einschlägige Teil dieses Beitrags zusammengefasst:

Unter Vista und Win7 führen Sie den folgenden Befehl von einer administrativen Eingabeaufforderung aus:

netsh http add urlacl url=http://vaidesg:8080/ user=everyone

Für XP installieren Sie zunächst die Windows XP Service Pack 2 Support Tools. Führen Sie dann den folgenden Befehl von einer administrativen Eingabeaufforderung aus:

httpcfg set urlacl /u http://vaidesg1:8080/ /a D:(A;;GX;;;WD)

127 Stimmen

Im Falle eines 503 Fehlers, siehe dies: stackoverflow.com/questions/5442551/

7 Stimmen

Gibt es eine netsh Befehl, um Verbindungen zu erlauben cualquier Hostname?

0 Stimmen

Das wird funktionieren: stackoverflow.com/a/15809698/566608 aus irgendeinem Grund hat diese Antwort bei mir nicht funktioniert.

389voto

Colonel Panic Punkte 125419

Es gibt drei Änderungen, die Sie möglicherweise vornehmen müssen.

  1. Sagen Sie IIS Express, dass es sich an alle IP-Adressen und Hostnamen binden soll. In Ihrem .config Datei. Typischerweise:
    • VS 2015: $(solutionDir)\.vs\config\applicationhost.config
    • < VS 2015: %userprofile%\My Documents\IISExpress\config\applicationhost.config

Suchen Sie das bindende Element Ihrer Website und fügen Sie

    <binding protocol="http" bindingInformation="*:8080:*" />
  1. Richten Sie das Windows-Bit namens "http.sys" ein. Führen Sie als Administrator den Befehl aus:

    netsh http add urlacl url=http://*:8080/ user=everyone

Wo everyone ist eine Windows-Gruppe. Verwenden Sie doppelte Anführungszeichen für Gruppen mit Leerzeichen wie "Tout le monde".

  1. IIS Express über die Windows-Firewall zulassen.

    Start / Windows-Firewall mit erweiterter Sicherheit / Eingehende Regeln / Neue Regel...

    Programm %ProgramFiles%\IIS Express\iisexpress.exe
    OR Anschluss 8080 TCP

Wenn Sie nun beginnen iisexpress.exe sollten Sie eine Meldung wie die folgende sehen

Erfolgreiche Registrierung der URL "http://\*:8080/" für die Website "hello world" Anwendung "/"

2 Stimmen

Tolle zusammenfassende Liste, danke! #1 und #3 war genug für mich auf Win7.

25 Stimmen

N.B.: Wenn Sie eine lokalisierte Version von Windows verwenden, muss der Parameter users=everyone für netsh (zweiter Schritt) kann den Fehler 1789 verursachen. Die Lösung ist zu übersetzen everyone auf den entsprechenden Gruppennamen in Ihrer Sprache.

6 Stimmen

Wie bringen Sie ein Visual Studio-Projekt dazu, diese Bindung zu akzeptieren? In den Projekteigenschaften, wo Sie Folgendes angeben Project Url Wenn ich für den Hostnamen ein Sternchen eingebe, wird eine Fehlermeldung angezeigt. Wenn ich etwas anderes eingebe, versucht er, ein neues virtuelles Verzeichnis zu erstellen. Es verweist nicht auf den Eintrag in application.config.

178voto

Toolkit Punkte 10023

Nichts funktionierte bei mir, bis ich Folgendes fand iisexpress-Vollmacht .

Öffnen Sie die Eingabeaufforderung als Administrator, und führen Sie dann

npm install -g iisexpress-proxy

dann

iisexpress-proxy 51123 to 81

Angenommen, Ihr Visual Studio-Projekt wird auf localhost:51123 geöffnet und Sie möchten auf die externe IP-Adresse x.x.x.x:81 zugreifen

Bearbeiten: Ich verwende derzeit ngrok

9 Stimmen

Schmerzlose Lösung

4 Stimmen

Die einfachste Lösung, die ich finden konnte. Sollte wahrscheinlich das Paket in etwas wie web-proxy umbenennen, da Sie es für mehr als Weiterleitung iisexpress verwenden können :)

0 Stimmen

Ich konnte es nicht zum Laufen bringen. Hier sind die Befehle, die ich eingegeben habe. Hat jemand eine Idee? C:\Program Dateien \iisexproxy >npm install -g iisexpress-proxy C:\Users\xavier\AppData\Roaming\npm\iisexpress -Vollmacht -> C:\Users\xavier\AppData\Roaming\npm\node_modules\iisexpress -Vollmacht \index.js iisexpress-proxy@1.1.3 C:\Users\xavier\AppData\Roaming\npm\node_modules\iisexpress -Proxy http-proxy@1.13.1 (eventemitter3@1.1.1, requires-port@1.0.0) C:\Program Dateien \iisexproxy >iisexpress-proxy 54954 bis 3000 'iisexpress-proxy' wird nicht als internes oder externes Kommando, lauffähiges Programm oder Batch-Datei erkannt.

148voto

Ich erinnere mich, dass ich vor ein paar Monaten beim Ausprobieren dieses Arbeitsablaufs auf die gleichen Probleme gestoßen bin.

Aus diesem Grund habe ich ein einfaches Proxy-Dienstprogramm speziell für diese Art von Szenario geschrieben: https://github.com/icflorescu/iisexpress-proxy .

Die Verwendung des IIS-Express-Proxy wird alles ganz einfach - Sie müssen nicht "netsh http add urlacl url=vaidesg:8080/ user=everyone" eingeben oder Ihre "applicationhost.config" durcheinander bringen.

Geben Sie dies einfach in der Eingabeaufforderung ein:

iisexpress-proxy 8080 to 3000

und dann können Sie Ihre entfernten Geräte auf http://vaidesg:3000 .

Meistens ist das Einfachste das Beste.

3 Stimmen

Danke für die tolle Lösung!

1 Stimmen

Und ich möchte hinzufügen, dass Node.js-Lösungen wie diese die einzigen sind, die zuverlässig über Azure funktionieren, da Azure-Builds die Datei applicationhost.config automatisch generieren und Ihre Bindungsänderungen löschen.

1 Stimmen

Ich habe begonnen, IIS Express Proxy auf meinem Mac zusammen mit ngrok zu verwenden, nachdem ngrok nicht wie erwartet funktioniert hat (weil ich die erforderliche IIS Express-Konfigurationsmanipulation nicht vorgenommen hatte). Sehr praktisch! Ich danke Ihnen.

55voto

Daniel Eisenreich Punkte 1175

Wenn Sie mit Visual Studio arbeiten, folgen Sie diesen Schritten, um auf den IIS-Express über die IP-Adresse zuzugreifen:

  1. Ermitteln Sie Ihre Host-IP-Adresse: ipconfig in der Windows-Befehlszeile

  2. GoTo

    $(SolutionDir)\.vs\config\applicationHost.config
  3. finden.

    <site name="WebApplication3" id="2">
       <application path="/" applicationPool="Clr4IntegratedAppPool">
          <virtualDirectory path="/" physicalPath="C:\Users\user.name\Source\Repos\protoype-one\WebApplication3" />
       </application>
       <bindings>
         <binding protocol="http" bindingInformation="*:62549:localhost" />
       </bindings>
    </site>
  4. Hinzufügen: <binding protocol="http" bindingInformation="*:62549:192.168.178.108"/>
    mit Ihrer IP-Adresse

  5. Führen Sie Ihr Visual Studio mit Administratorrechten aus und alles sollte funktionieren

  6. Suchen Sie vielleicht nach Firewall-Problemen, wenn Sie versuchen, eine Verbindung aus der Ferne herzustellen.

0 Stimmen

Das hat nicht geklappt. Deshalb die Ablehnung

0 Stimmen

@William vielleicht hast du etwas vergessen - bei den anderen scheint es zu funktionieren

0 Stimmen

Dies ist der einfachste Weg

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X