Wie aktiviere ich externe Anforderungen in IIS Express?


466

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


25
Es gibt eine kostenlose VS-Erweiterung dafür, die wir visualstudiogallery.msdn.microsoft.com/… geschrieben haben
Jim W sagt, Monica

@ JimW Jim, bist du der Schöpfer des Plugins? Könnten Sie bitte erklären, wie dieses Wunder der Softwareentwicklung funktioniert?
Ian Warburton

@ IanWarburton danke, dass du es ein Wunder nennst! Es ist ein Reverse-Proxy-Server.
Jim W sagt, Monica am

@ JimW Danke, dass du es erstellt hast.
Ian Warburton

@ JimW Ich habe dein Plugin ausprobiert und mache alles wie du im Tutorial gesagt hast. Aber ich kann meinen localhost immer noch nicht erreichen
mark_spencer

Antworten:


403

Auf der IIS-Teamwebsite befindet sich ein Blogbeitrag, in dem erläutert wird, wie Remoteverbindungen in IIS Express aktiviert werden . Hier ist der relevante Teil dieses Beitrags zusammengefasst:

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

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

Installieren Sie für XP zuerst die Windows XP Service Pack 2-Supporttools. Führen Sie dann den folgenden Befehl an einer Verwaltungsaufforderung aus:

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


121
Im Falle eines 503-Fehlers sehen Sie dies: stackoverflow.com/questions/5442551/…
Deerchao

5
Gibt es einen netshBefehl zum Zulassen von Verbindungen auf einem beliebigen Hostnamen?
Colonel Panic

33
Nur zur Veranschaulichung: Wenn Sie einen Windows-Computer in einer nicht englischen Sprache haben, wird der Parameter von user={PARAM_USER}in Ihrer eigenen Sprache angegeben.
GoRoS

7
Durch die Verwendung von Platzhaltern im URL-Parameter (z. B. url = http: // *: 8080 /) funktionieren Verbindungen sowohl für den Hostnamen als auch für die IP-Adresse des Computers.
Anders

2
Falls der Befehl fehlschlägt (wahrscheinlich Fehler 1789), berücksichtigen Sie, dass der Befehl für den Benutzer in Ihrer PC-Sprache erwartet. Wenn Ihr PC beispielsweise in Portugiesisch ist, verwenden Sie user=todosstattdessen anstelle von user=everyone.
Vitor Canova

350

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

  1. Weisen Sie IIS Express an, sich an alle IP-Adressen und Hostnamen zu binden. In Ihrer .configDatei. Typischerweise:
    • 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

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

  1. Erlauben Sie IIS Express über 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 beginnen iisexpress.exe, sollten Sie eine Meldung wie sehen

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


22
Hinweis: Wenn Sie eine lokalisierte Version von Windows ausführen, kann der Parameter users=everyonefür netsh(zweiter Schritt) den Fehler 1789 verursachen. Die Lösung besteht darin, everyonein den entsprechenden Gruppennamen in Ihrer Sprache zu übersetzen.
Mflodin

5
Wie bringt man ein Visual Studio-Projekt dazu, diese Bindung zu akzeptieren? Project UrlWenn ich in den Projekteigenschaften, die Sie angeben , ein Sternchen für den Hostnamen eingebe, wird ein Fehler ausgegeben. Wenn ich etwas anderes eingebe, wird versucht, ein neues virtuelles Verzeichnis zu erstellen. Es wird kein Link zum Eintrag in application.config erstellt.
Trevor Elliott

20
Damit es in Visual Studio funktioniert, müssen Sie in Schritt 1 bindingInformation="*:8080:hostname"und in Schritt 2 den Hostnamen Ihres Computers verwenden url=http://hostname:8080/und in den Eigenschaften Ihres Visual Studio-Webprojekts auf der Registerkarte Web die Option Projekt-URL festlegen http://hostname:8080/. Löschen Sie die *URL, falls Sie bereits eine erstellt haben. es wird nicht funktionieren, wenn Sie beide haben. Schließlich muss die URL, zu der Sie in Ihrem Webbrowser gehen, auf den Hostnamen verweisen, nicht auf localhost.
Joe Daley

5
Ich musste auch eine localhost-Zeile im Bindungselement haben, andernfalls versuchte Visual Studio 2013, einen doppelten Site-Eintrag zu erstellen. zB:<binding protocol="http" bindingInformation="*:8080:localhost" />
kristianp

3
Ich musste auch Visual Studio als Administrator ausführen, aber diese Antwort war die gründlichste.
dlsso

127

Ich erinnere mich, dass ich vor einigen Monaten beim Ausprobieren dieses Workflows auf dieselben Probleme gestoßen bin.

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

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

Geben Sie dies einfach an der Eingabeaufforderung aus:

iisexpress-proxy 8080 to 3000

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

Meistens ist einfacher besser.


3
Danke für die tolle Lösung!
Sommerzeit

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

1
Ich habe begonnen, IIS Express Proxy auf meinem Mac zusammen mit ngrok zu verwenden, nachdem ngrok nicht wie erwartet funktioniert hat (da ich die erforderliche Manipulation der IIS Express-Konfiguration nicht durchgeführt hatte). Sehr praktisch! Vielen Dank.
Codingoutloud

1
Dies ist bei weitem die einfachste Lösung. Ich ziehe es vor, mich nicht mit der applicationhost.config anzulegen, wenn ich nicht muss.
Skalpin

4
Hervorragende Lösung! Gehen Sie jetzt zurück und machen Sie das Chaos, das ich mit meinem IIS Express angerichtet habe, rückgängig.
Mitch Stewart

123

Nichts hat bei mir funktioniert, bis ich iisexpress-proxy gefunden habe .

Öffnen Sie die Eingabeaufforderung als Administrator und führen Sie sie aus

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 xxxx: 81 zugreifen

Bearbeiten: Ich verwende derzeit ngrok


7
schmerzlose Lösung
Bahadir

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

8
@xgp - Hallo, ich bin der Autor von iisexpress-proxy :-) Hast du es am Ende geschafft, dass es für dich funktioniert? Sie müssen die Eingabeaufforderung schließen und erneut öffnen oder in seltenen Fällen das Betriebssystem neu starten. Schreiben Sie mir auf der Projektseite ( github.com/icflorescu/iisexpress-proxy ), wenn Sie weitere Fragen haben, und ich werde versuchen, Ihnen zu helfen, wenn ich Zeit habe.
Ionut-Cristian Florescu

1
Vielen Dank für die Verwendung und für Ihre freundlichen Worte :-). @MarioTacke - Ja, ich weiß, aber mehr Leute können es finden, indem sie einfach googeln, wenn es iisexpress-proxy heißt :-)
Ionut-Cristian Florescu

1
Übrigens funktioniert dies nicht mit der Windows-Authentifizierung.
Tom

35

Als Nebenbemerkung dazu:

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

Dies funktioniert nur unter englischen Windows-Versionen. Wenn Sie eine lokalisierte Version verwenden, müssen Sie "alle" 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 wird eine Fehlermeldung angezeigt (SDDL erstellen fehlgeschlagen, Fehler: 1332)


33

Eine gute Ressource ist die Arbeit mit SSL zur Entwicklungszeit. Mit IISExpress von Scott Hanselman ist es einfacher .

Was Sie suchen, ist der Abschnitt IIS Express für die externe Bereitstellung über Port 80 verwenden


In diesem Blogbeitrag wird empfohlen, Port 80 auf "IISExpressWeb.exe" zu isolieren. In der aktuellen Version von IIS Express fehlt eine Exe dieses Namens - es gibt nur IISExpress.exe und IISExpressTray.exe. Das Isolieren von Verbindungen zu beiden verhindert eine Verbindung von außen. Durch das Aufheben der Prozessbeschränkung können Verbindungen hergestellt werden. Was ist die richtige EXE-Datei für das Ziel?
Chris Moschini

33

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

  1. Holen Sie sich Ihre Host-IP-Adresse: ipconfigin 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. 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 möglicherweise nach Firewall-Problemen, wenn Sie versuchen, eine Verbindung über die Remote-Verbindung herzustellen

20

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

Geben Sie hier die Bildbeschreibung ein

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 befinden sich unter folgendem Link:

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


@ Kilianeller Bitte folgen Sie dem Link in der Antwort und stellen Sie dort eine Frage, wir können Ihnen helfen.
Jim W sagt, Monica

Workst !!, ich beweise alle anderen Lösungen (ändern Sie applicationhost.config, netsh, IPv6-Adresse ..) und nichts, aber die Installation funktioniert schließlich. Das einzige kleine Problem war, dass die IP-Adresse fehlgeleitet wurde, aber kein ernstes Problem.
Ion

Wirklich einfach zu installieren. Stellen Sie einfach sicher, dass Sie das Zertifikat in Ihrem Remote-Browser hinzufügen, wie auf der Seite der Erweiterung angegeben.
Andres

Ich kann es nicht glauben, es funktioniert !!! SO EINFACH, SO ELEGANT !!! Ich habe die letzten 5 Stunden nur damit verbracht, nach leeren Lösungen zu suchen, und schließlich habe ich diese gefunden!
Ziggy192

10

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

Fügen Sie eine andere <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 Admin ausführen


Leider scheint das bei mir nicht zu funktionieren. Ich bekomme immer noch eine verweigerte Verbindung, wenn ich versuche, auf meine lokale IP auf Port 8080
zuzugreifen

@ThomasTeilmann, in Visual Studio musste ich die Eigenschaften der Webanwendung öffnen und auf der Registerkarte "Web" die "Projekt-URL" ändern, um den alternativen Hostnamen anstelle von "localhost" zu verwenden.
Sam

@ThomasTeilmann, Oh, und ich denke, Sie müssen eher nach Hostnamen als nach IP suchen.
Sam

Ich habe beides auch versucht, und es hat nicht für die Cloud-Instanz funktioniert: / Danke aber
Thomas Teilmann

Dies war die Antwort für mich (dh VS als Administrator ausführen) - danke @Bruce. Außerdem musste ich meine Firewall-Einstellungen manuell korrigieren. In meinem Fall (dh beim Testen, ob mein iPhone meinen Entwicklungscomputer durchsuchen kann) funktionierte das Öffnen von Port 8080 in der Firewall nicht (nicht wahr?), Aber das Öffnen des Zugriffs per IP (dh Bereich> Lokale IPs = 10.0.0.0/24 = mein Zuhause) Netzwerk) hat den Trick gemacht.
Ilan

8

Was mir geholfen hat, war das Klicken mit der rechten Maustaste auf das Symbol "IISExpress", "Alle Anwendungen anzeigen". Dann wählte ich die Website aus und sah, welche aplicationhost.config verwendet wird, und die Korrektur verlief perfekt.

IISExpress-Konfiguration


2
Diese Antwort wies mich auf eine andere Lösung hin, bei der applicationhost.config bearbeitet wurde, um Folgendes zu akzeptieren : 55665: anstelle von *: 55665: localhost
Deko

Danke @Deko - Ihr Kommentar, zusammen mit dem in einigen anderen Antworten erwähnten Befehl netsh, hat es für mich funktioniert.
Marcel Popescu

8

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:

Der erste Schritt besteht darin, Ihre Anwendung an Ihre interne IP-Adresse zu binden. Führen Sie cmd-> aus ipconfig, um die Adresse abzurufen. Öffnen Sie die Datei /{project folder}/.vs/config/applicationhost.configund 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 zwei neue Bindungen hinzu bindings. Sie können auch HTTPS 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 cmdEingabeaufforderung als Administrator 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 für Webprojekte und wählen Sie Properties. Gehen Sie zur WebRegisterkarte und klicken Sie auf Create Virtual Directory. Wenn Visual Studio nicht als Administrator ausgeführt wird, schlägt dies wahrscheinlich fehl. Jetzt sollte alles funktionieren.

Geben Sie hier die Bildbeschreibung ein


Hat für mich gearbeitet! :) Es gibt auch einen schönen Beitrag hier: blog.kloud.com.au/2017/02/27/…
Leniel Maccaferri

Ich habe alles andere versucht, einschließlich ngrok, ohne Erfolg. Dies funktionierte beim ersten Versuch.
Kooldave98

5

Die akzeptierte Antwort auf diese Frage ist eine Anleitung, wie IIS Express mit Webmatrix funktioniert. Ich fand dieses Handbuch nützlicher, wenn ich versuchte, es mit VS 2010 zum Laufen zu bringen.

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


Die Anweisungen, die Sie verknüpfen, um die Fähigkeit zum Debuggen in Visual Studio zu verlieren, was zumindest meiner Ansicht nach sinnlos ist - die Verwendung von IIS oder eines anderen Remote-Servers wäre genauso gut oder besser (da Sie das Remote-Debugging zumindest auf IIS einrichten könnten). Wenn für die Ausführung von IIS Express keine Administratorrechte ohne localhost erforderlich wären, würde dies einfach funktionieren. Sehr nervig.
Chris Moschini

Genau das habe ich gesucht - danke! Ich verwende IIS Express mit Visual Studio 2010 und wollte eine ASP.NET MVC3-Anwendung in meinem LAN testen, und das war es, was ich brauchte, damit das funktioniert :)
Lasse Christiansen

5

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 die Ausführung IP:PORTIhrer Website an einen anderen freien Port Ihres Computers weiterleiten, jedoch an den externen Netzwerkadapter, nicht an localhost.

Die Sache ist, dass IIS Express (zumindest unter Windows 10) an die [::1]:portBedeutung gebunden ist , dass es den IPv6-Port überwacht. Sie müssen dies berücksichtigen.

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

Ich hoffe es hilft.


Ich verwende Windows 10 und die Bindung von localhost an IPv6 war der Schlüssel. Vielen Dank!
TomaszGuzialek

Der Computer, den ich konfigurieren wollte, hatte eine andere lokale Adresse. Es wurde "local-dev" genannt. Ich musste nur add v4tov6 listenport = 3000 connectaddress = local-dev connectport = 60000 binden , damit es funktioniert. Toller Beitrag, danke!
Anika

4

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

https://ngrok.com/

Es funktioniert mit allem, was auf localhost läuft. Melden Sie sich einfach an, führen Sie wenig Excutable aus, und was auch immer Sie auf localhost ausführen, erhält eine öffentliche URL, auf die Sie von überall aus zugreifen können.

Dies ist gut, um Ihren Remote-Teamkollegen Dinge zu zeigen, ohne mit IIS-Setup oder Firewalls herumzuspielen. Möchten Sie den Zugriff beenden, beenden Sie einfach 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


1
Wer würde denken, dass ich so viele Antworten
durchlesen muss,

3

Ich habe einige Probleme mit IIS Express in Win 8.1 und externen Anforderungen.

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 einen exklusiven AppPool in IIS, um mit meiner Anwendung zu arbeiten
  4. In meinem Projekt verwende ich Oracle Client und muss 32 Bit haben (64 Bit funktionieren nicht mit Visual Studio), dann muss ich 32 Bit im Anwendungspool zulassen
  5. Konfigurieren Sie die Windows-Firewall so, dass Anforderungen in Port 80 zugelassen werden (eingehende Regeln).

Es funktioniert!


2

Wenn Sie Visual Studio über Admin 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

1
Ich habe diese Konfiguration angewendet $(SolutionDir).vs\config\applicationHost.configund musste auch den Port (8443) der Anwendung in der Windows-Firewall öffnen.
Tonatio

2

Ich hatte einen lokalen IIS aktiviert, also habe ich gerade eine Umschreiberegel für meinen Debugging-Port erstellt ... Ich denke, dies ist besser und cooler als andere Methoden, da es einfacher ist, sie zu entfernen, wenn die Entwicklung abgeschlossen ist ... So sieht das Umschreiben aus. .

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

Mit VS können Sie auch direkt mit Ihrem lokalen IIS entwickeln (was dann Remoteverbindungen ermöglicht), aber Sie müssen es wiederum immer als Administrator ausführen ... das gefällt mir nicht.


Dies ist auch meine Lieblingslösung, danke :) Ich musste nur zuerst den Reverse Proxy für meinen IIS aktivieren und dann diese Regel zu meiner web.config hinzufügen.
Mahdi Ghiasi

1

Ich habe dieses Problem mithilfe des Reverse-Proxy-Ansatzes gelöst.

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

Ich habe einen neuen Port hinzugefügt, um den Apache-Webserver (8081) abzuhören. Dann habe ich die Proxy-Konfiguration als virtueller Host für diesen Port hinzugefügt.

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

1

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

Geben Sie hier die Bildbeschreibung ein

Ich hoffe es hilft.


0

Ich konnte seine Anfragen nicht 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

Das ist wahnsinnig großartig 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 verschwinden sollte:

> 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 oben genannte Dienstprogramm registriert das SSL-Zertifikat für Sie! Wenn Sie die Option -UseSelfSigned verwenden, ist dies sehr einfach.

Wenn Sie die Dinge auf die harte Tour erledigen möchten, müssen 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

Ich habe Folgendes getan und konnte eine Verbindung herstellen:

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

Bindungsprotokoll = "http" bindingInformation = "*: 8888: *"

2) Definierte eingehende Regel für die Firewall, um den bestimmten 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 = every


Da Sie 6 Jahre nach der Beantwortung dieser Frage zu dieser Frage kommen und es bereits 12 andere Antworten gibt, ist es am besten, wenn Sie Ihre Antwort bearbeiten, um zu erklären, wie Ihre Antwort besser funktioniert als die anderen 12 (oder zumindest wie sie funktioniert) ist anders).
Heretic Monkey

0

Eine andere Möglichkeit, auf externe Anforderungen zuzugreifen, besteht darin, IIS anstelle von IIS Express zu verwenden. In meinem visuellen Studio kann ich einfach wechseln.

Geben Sie hier die Bildbeschreibung ein


Ich benutze VS2019.
PJ3

-1

[Dialogfeld "Projekteigenschaften"]

Für die Entwicklung mit VisualStudio 2017 und einem NetCore API-Projekt:

1) In Cmd-Box: ipconfig / all, um die IP-Adresse zu bestimmen

2a) Geben Sie die abgerufene IP-Adresse unter Projekteigenschaften-> Registerkarte Debug ein

2b) Wählen Sie einen Port aus und verbinden Sie diesen ab Schritt 2a mit der IP-Adresse.

3) Fügen Sie der Firewall eine Zulassungsregel hinzu, um eingehenden TCP-Verkehr auf dem ausgewählten Port zuzulassen (meine Firewall wird mit einem Dialog ausgelöst: "Blockieren oder Hinzufügen einer Regel zur Firewall"). Add wird in diesem Fall den Trick machen.

Nachteil der obigen Lösung:

1) Wenn Sie eine dynamische IP-Adresse verwenden, müssen Sie die obigen Schritte wiederholen, falls eine andere IP-Adresse zugewiesen wurde.

2) Ihr Server hat jetzt einen offenen Port, den Sie vielleicht vergessen, aber dieser offene Port bleibt eine Einladung für unerwünschte Gäste.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.