it-swarm.com.de

So aktivieren Sie die externe Anforderung in IIS Ausdrücken?

Wie kann ich Remote-Anforderungen in IIS Express aktivieren? Scott Guthrie schrieb, dass das möglich ist aber er sagte nicht wie.

411
TedTel

Auf der Teamwebsite von IIS gibt es einen Blogeintrag, in dem erläutert wird, wie Remoteverbindungen in IIS Express aktivieren . Hier ist der relevante Teil dieses Beitrags zusammengefasst:

Führen Sie unter Vista und Win7 den folgenden Befehl an einer administrativen Eingabeaufforderung aus:

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

Installieren Sie unter XP zunächst die Windows XP Service Pack 2-Supporttools. Führen Sie dann den folgenden Befehl an einer administrativen Eingabeaufforderung aus:

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

387
Damian Edwards

Möglicherweise müssen Sie drei Änderungen vornehmen.

  1. Sagen Sie IIS sich selbst zum Binden an alle IP-Adressen und Hostnamen. In Ihrer .config -Datei. In der Regel:
    • VS 2015: $(solutionDir)\.vs\config\applicationhost.config
    • <VS 2015: %userprofile%\My Documents\IISExpress\config\applicationhost.config

Suchen Sie das Bindungselement Ihrer Site und fügen Sie es hinzu

    <binding protocol="http" bindingInformation="*:8080:*" />
  1. Richten Sie das Windows-Bit "http.sys" ein. Führen Sie als Administrator den folgenden Befehl aus:
    netsh http add urlacl url=http://*:8080/ user=everyone

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

  1. Erlaube IIS Express durch die Windows Firewall.

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

    Programm %ProgramFiles%\IIS Express\iisexpress.exe
    ODER Port 8080 TCP

Wenn Sie jetzt iisexpress.exe starten, sollten Sie eine Meldung wie sehen

Erfolgreich registrierte URL "http: // *: 8080 /" für Site "Hallo Welt" Anwendung "/"

340
Colonel Panic

Ich erinnere mich daran, dass ich vor einigen Monaten beim Versuch dieses Workflows auf die gleichen Probleme gestoßen bin.

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

Mit dem Express-Proxy IIS wird alles ganz einfach - Sie müssen nicht "netsh http add urlacl url = vaidesg: 8080/user = Everyone" hinzufügen oder sich mit Ihrer "applicationhost.config" herumschlagen.

Geben Sie einfach folgende Eingabeaufforderung aus:

iisexpress-proxy 8080 to 3000

… Und dann können Sie Ihre Remote-Geräte auf http: // vaidesg: 3000 zeigen.

Meistens einfacher IS besser.

Nichts hat für mich funktioniert, bis ich iisexpress-proxy gefunden habe. 

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

npm install -g iisexpress-proxy

dann

iisexpress-proxy 51123 to 81

vorausgesetzt, 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

Edit: Ich verwende derzeit ngrok

94
Toolkit

Eine gute Ressource ist Mit IISExpress ist das Arbeiten mit SSL zur Entwicklungszeit einfacher von Scott Hanselman.

Was Sie suchen, ist der Abschnitt Getting IIS Express zur externen Bedienung über Port 80.

33
Luke Sampson

Als Nebenbemerkung dazu:

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

Dies funktioniert nur bei englischen Windows-Versionen. Wenn Sie eine lokalisierte Version verwenden, müssen Sie "Jeder" durch etwas anderes ersetzen, zum Beispiel:

  • "Iedereen" bei Verwendung einer niederländischen Version
  • "Jeder" bei Verwendung einer deutschen Version
  • "Mindenki" bei Verwendung einer ungarischen Version

Andernfalls erhalten Sie eine Fehlermeldung (SDDL fehlgeschlagen, Fehler: 1332).

30
breez

Wenn Sie mit Visual Studio arbeiten, führen Sie die folgenden Schritte aus, um auf die IIS-Express über IP-Adresse zuzugreifen:

  1. Rufen Sie Ihre Host-IP-Adresse ab: ipconfig in der Windows-Befehlszeile
  2. Gehe zu 

    $(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. Add: <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 nach Firewall-Problemen, wenn Sie versuchen, eine Verbindung von einem entfernten Standort herzustellen
21

Ich habe es mit der Installation von "Conveyor by Keyoti" in Visual Studio Professional 2015 gelöst. Conveyor generiert eine REMOTE-Adresse (Ihre IP-Adresse) mit einem Port (45455), der eine externe Anforderung ermöglicht. Beispiel:

 enter image description here

Mit Conveyor können Sie Webanwendungen von externen Tablets und Telefonen in Ihrem Netzwerk oder von Android-Emulatoren (ohne http://10.0.2.2:<hostport>) testen.

Die Schritte sind in dem folgenden Link:

https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti

16
Ronny Morán

Wenn Sie die Antwort von Colonel Panic ausprobiert haben aber in Visual Studio nicht funktionieren, versuchen Sie Folgendes:

Fügen Sie einen weiteren <binding /> in Ihrer IIS Express-Konfiguration hinzu

<bindings>
    <binding protocol="http" bindingInformation="*:8080:localhost" />
    <binding protocol="http" bindingInformation="*:8080:hostname" />
</bindings>

Schließlich müssen Sie Visual Studio als Administrator ausführen

10
Bruce

Was mir dabei geholfen hat, war ein Rechtsklick auf das Symbol "IISExpress", "Alle Anwendungen anzeigen". Als ich dann die Website auswählte, sah ich, welche aplicationhost.config verwendet wird, und die Korrektur lief perfekt.

 IISExpress configuration

7
Emmanuel

Die akzeptierte Antwort auf diese Frage ist ein Leitfaden für die Verwendung von IIS Express für die Arbeit mit webmatrix. Ich fand diesen Leitfaden nützlicher, wenn ich versuche, es mit VS 2010 zu verbinden.

Ich habe gerade die Schritte 3 und 4 (mit IIS Express als Administrator) ausgeführt und musste meine Firewall vorübergehend deaktivieren, damit sie funktioniert.

5
Chad

Dies habe ich für Windows 10 mit Visual Studio 2015 getan, um den Remotezugriff sowohl mit http als auch mit https zu ermöglichen:

Zunächst müssen Sie Ihre Anwendung an Ihre interne IP-Adresse binden. Führen Sie cmd -> ipconfig aus, um die Adresse abzurufen. Öffnen Sie die Datei /{project folder}/.vs/config/applicationhost.config und scrollen Sie nach unten, bis Sie Folgendes finden:

<site name="Project.Web" id="2">
    <application path="/">
        <virtualDirectory path="/" physicalPath="C:\Project\Project.Web" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:12345:localhost" />
    </bindings>
</site>

Fügen Sie unter bindings zwei neue Bindungen hinzu. Sie können HTTPS auch verwenden, wenn Sie möchten:

<binding protocol="http" bindingInformation="*:12345:192.168.1.15" />
<binding protocol="https" bindingInformation="*:44300:192.168.1.15" />

Fügen Sie Ihrer Firewall die folgende Regel hinzu, öffnen Sie eine neue cmd-Eingabeaufforderung als admin und führen Sie die folgenden Befehle aus:

netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=12345 profile=private remoteip=localsubnet action=allow

netsh advfirewall firewall add rule name="IISExpressWebHttps" dir=in protocol=tcp localport=44300 profile=private remoteip=localsubnet action=allow

Starten Sie nun Visual Studio als Administrator. Klicken Sie mit der rechten Maustaste auf die Projektdatei des Webprojekts und wählen Sie Properties aus. Gehen Sie zur Registerkarte Web und klicken Sie auf Create Virtual Directory. Wenn Visual Studio nicht als Administrator ausgeführt wird, schlägt dies möglicherweise fehl. Jetzt sollte alles funktionieren.

 enter image description here

5
Ogglas

Sie können versuchen, die Portweiterleitung einzurichten, anstatt zu versuchen, Ihre IIS Express-Konfiguration zu ändern, neue HTTP.sys-Regeln hinzuzufügen oder Visual Studio als Administrator auszuführen. 

Grundsätzlich müssen Sie den IP:PORT weiterleiten, über den Ihre Website an einen anderen freien Port Ihres Computers, jedoch nicht über den lokalen Netzwerkadapter, sondern über den externen Netzwerkadapter läuft. 

Die Sache ist, dass IIS Express (zumindest unter Windows 10) an [::1]:port bindet, was bedeutet, dass es am IPv6-Port lauscht. Sie müssen dies berücksichtigen.

So habe ich diese Arbeit gemacht - http://programmingflow.com/2017/02/25/iis-express-on-external-ip.html

Ich hoffe es hilft.

4
srmrco

Ich habe Probleme mit der Verwendung von IIS Express in Win 8.1 und einer externen Anforderung.

Ich folge diesen Schritten, um die externe Anfrage zu debuggen: 

  1. Installieren Sie IIS
  2. Konfigurieren Sie Visual Studio für die Verwendung von lokalem IIS (Seiteneigenschaften in Ihrem Webprojekt).
  3. Erstellen Sie ein exklusives AppPool in IIS, um mit meiner Anwendung zu arbeiten
  4. In meinem Projekt verwende ich Oracle Client und muss 32 Bit groß sein (64 Bit funktionieren nicht mit Visual Studio), dann muss 32 Bit im Anwendungspool zugelassen werden
  5. Konfigurieren Sie die Windows-Firewall so, dass Anforderungen in Port 80 (eingehende Regeln) zulässig sind.

Es funktioniert!

3
Robson Douglas

Die einfachste und coolste Methode, die ich gefunden habe, war die Verwendung (die Einrichtung dauert 2 Minuten):

https://ngrok.com/

Es funktioniert mit allem, was auf localhost läuft. Einfach anmelden, wenig ausführbare Dateien ausführen und was immer Sie auf localhost ausführen, erhält eine öffentliche URL, auf die Sie von überall aus zugreifen können. 

Dies ist gut, wenn Sie Ihren Teamkollegen etwas zeigen möchten, kein Fummeln mit IIS = Setup oder Firewall. Möchten Sie den Zugriff beenden, beenden Sie die ausführbare Datei.

ngrok authtoken xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

ngrok http -Host-header=localhost 89230

angenommen, 89230 ist Ihr IIS Express-Port

Sie können auch mehrere Ports ausführen, auch wenn Sie einen kostenlosen Plan haben

2
Artur Kędzior

Ich hatte ein lokales IIS aktiviert, also habe ich gerade eine Umschreibungsregel für meinen Debugging-Port erstellt ... Ich denke, das ist besser und cooler als andere Methoden, da es einfacher ist, es zu entfernen, sobald ich mit der Entwicklung fertig bin ... die umschreiben sieht ..

<rewrite>
    <rules>
        <rule name="ReverseProxyInboundRule1" stopProcessing="true">
            <match url="^dev/(.*)" />
            <action type="Rewrite" url="http://localhost:47039/{R:1}" />
        </rule>
    </rules>
</rewrite>

VS ermöglicht es Ihnen auch, direkt mit Ihrem lokalen IIS zu entwickeln (was dann Remoteverbindungen zulässt), aber Sie müssen es immer als Administrator ausführen ... Das gefällt mir nicht.

2
konzo

Wenn Sie Visual Studio von Admin aus ausführen, können Sie nur hinzufügen

<binding protocol="http" bindingInformation="*:8080:*" />

oder 

<binding protocol="https" bindingInformation="*:8443:*" />

in

%userprofile%\My Documents\IISExpress\config\applicationhost.config
2
Andrii

Ich habe dieses Problem mit dem Reverse-Proxy-Ansatz gelöst.

Ich habe den Wamp-Server installiert und die einfache Reverse-Proxy-Funktion des Apache-Webservers verwendet.

Ich habe einen neuen Port zum Abhören des Apache-Webservers (8081) hinzugefügt. Dann habe ich eine Proxy-Konfiguration als virtuellen Host für diesen Port hinzugefügt.

<VirtualHost *:8081>
ProxyPass / http://localhost:46935/
ProxyPassReverse / http://localhost:46935/
</VirtualHost>
0
mustafacanturk

Ich habe folgendes gemacht und konnte mich verbinden:

1) Express-Konfigurationsbindung IIS wurde vom lokalen Host in '*' geändert.

bindungsprotokoll = "http" bindingInformation = "*: 8888: *" 

2) Definierte eingehende Regel für die Firewall, um den jeweiligen Port für den Protokolltyp zuzulassen: tcp

3) Fügen Sie den folgenden Befehl hinzu, um die Netzwerkkonfiguration für Ihren Port hinzuzufügen: netsh http add urlacl url = http: // *: 8888/user = everyone

0
dhakalan

Ich konnte keine Anfragen an andere Benutzer in meinem lokalen Netzwerk senden. Alles, was ich (zusätzlich zu den oben genannten) tun musste, war, meinen BT-Hub-Router neu zu starten.

0
Terry Kernan

Das ist wahnsinnig fantastisch und deckt sogar HTTPS mit hübschen Domainnamen ab:

http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx

Die wirklich großartigen Teile, die ich auf SO nirgendwo anders finden konnte, falls der obige Link jemals verschwindet:

> C:\Program Files (x86)\IIS Express>IisExpressAdminCmd.exe Usage:
> iisexpressadmincmd.exe <command> <parameters> Supported commands:
>       setupFriendlyHostnameUrl -url:<url>
>       deleteFriendlyHostnameUrl -url:<url>
>       setupUrl -url:<url>
>       deleteUrl -url:<url>
>       setupSslUrl -url:<url> -CertHash:<value>
>       setupSslUrl -url:<url> -UseSelfSigned
>       deleteSslUrl -url:<url>
> 
> Examples: 1) Configure "http.sys" and "hosts" file for friendly
> hostname "contoso": iisexpressadmincmd setupFriendlyHostnameUrl
> -url:http://contoso:80/ 2) Remove "http.sys" configuration and "hosts" file entry for the friendly  hostname "contoso": iisexpressadmincmd
> deleteFriendlyHostnameUrl -url:http://contoso:80/

Das obige Dienstprogramm registriert das SSL-Zertifikat für Sie! Wenn Sie die Option -UseSelfSigned verwenden, ist das ganz einfach.

Wenn Sie Dinge auf die harte Tour machen wollen, ist es nicht selbstverständlich, dass Sie HTTP.SYS mitteilen, welches Zertifikat verwendet werden soll.

netsh http add sslcert ipport=0.0.0.0:443 appid={214124cd-d05b-4309-9af9-9caa44b2b74a} certhash=YOURCERTHASHHERE

Certhash ist der "Fingerabdruck", den Sie aus den Zertifikateigenschaften in MMC erhalten können.

0
eselk

Ich habe all diese Schritte gemacht und nichts hat mir geholfen. Und was ich brauche, es ist nur meine App über IIS Express auszuführen ... 

 enter image description here

Ich hoffe es hilft.

0
Maksym Labutin