Wie kann ich Remoteanforderungen in IIS Express aktivieren? Scott Guthrie schrieb, dass dies möglich ist, aber er sagte nicht wie.
c#
asp.net
iis-express
TedTel
quelle
quelle
Antworten:
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:
quelle
netsh
Befehl zum Zulassen von Verbindungen auf einem beliebigen Hostnamen?user={PARAM_USER}
in Ihrer eigenen Sprache angegeben.user=todos
stattdessen anstelle vonuser=everyone
.Möglicherweise müssen Sie drei Änderungen vornehmen.
.config
Datei. Typischerweise:$(solutionDir)\.vs\config\applicationhost.config
%userprofile%\My Documents\IISExpress\config\applicationhost.config
Suchen Sie das Bindungselement Ihrer Site und fügen Sie es hinzu
Wo
everyone
ist eine Windows-Gruppe? Verwenden Sie doppelte Anführungszeichen für Gruppen mit Leerzeichen wie "Tout le monde".Erlauben Sie IIS Express über die Windows-Firewall.
Wenn Sie jetzt beginnen
iisexpress.exe
, sollten Sie eine Meldung wie sehenquelle
users=everyone
fürnetsh
(zweiter Schritt) den Fehler 1789 verursachen. Die Lösung besteht darin,everyone
in den entsprechenden Gruppennamen in Ihrer Sprache zu übersetzen.Project Url
Wenn 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.bindingInformation="*:8080:hostname"
und in Schritt 2 den Hostnamen Ihres Computers verwendenurl=http://hostname:8080/
und in den Eigenschaften Ihres Visual Studio-Webprojekts auf der Registerkarte Web die Option Projekt-URL festlegenhttp://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.<binding protocol="http" bindingInformation="*:8080:localhost" />
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.
quelle
Nichts hat bei mir funktioniert, bis ich iisexpress-proxy gefunden habe .
Öffnen Sie die Eingabeaufforderung als Administrator und führen Sie sie aus
dann
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
quelle
Als Nebenbemerkung dazu:
Dies funktioniert nur unter englischen Windows-Versionen. Wenn Sie eine lokalisierte Version verwenden, müssen Sie "alle" durch etwas anderes ersetzen, zum Beispiel:
Andernfalls wird eine Fehlermeldung angezeigt (SDDL erstellen fehlgeschlagen, Fehler: 1332)
quelle
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
quelle
Wenn Sie mit Visual Studio arbeiten, führen Sie die folgenden Schritte aus, um über die IP-Adresse auf IIS-Express zuzugreifen:
ipconfig
in der Windows-BefehlszeileGehe zu
Finden
Hinzufügen:
<binding protocol="http" bindingInformation="*:62549:192.168.178.108"/>
mit Ihrer IP-Adresse
quelle
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:
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
quelle
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 hinzuSchließlich müssen Sie Visual Studio als Admin ausführen
quelle
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.
quelle
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
-> ausipconfig
, um die Adresse abzurufen. Öffnen Sie die Datei/{project folder}/.vs/config/applicationhost.config
und scrollen Sie nach unten, bis Sie Folgendes finden:Fügen Sie unter zwei neue Bindungen hinzu
bindings
. Sie können auch HTTPS verwenden, wenn Sie möchten:Fügen Sie Ihrer Firewall die folgende Regel hinzu, öffnen Sie eine neue
cmd
Eingabeaufforderung als Administrator und führen Sie die folgenden Befehle aus:Starten Sie nun Visual Studio als
Administrator
. Klicken Sie mit der rechten Maustaste auf die Projektdatei für Webprojekte und wählen SieProperties
. Gehen Sie zurWeb
Registerkarte und klicken Sie aufCreate Virtual Directory
. Wenn Visual Studio nicht als Administrator ausgeführt wird, schlägt dies wahrscheinlich fehl. Jetzt sollte alles funktionieren.quelle
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.
quelle
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:PORT
Ihrer 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]:port
Bedeutung 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.
quelle
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.
Angenommen, 89230 ist Ihr IIS Express-Port
Sie können auch mehrere Ports ausführen, auch wenn Sie einen kostenlosen Plan haben
quelle
Ich habe einige Probleme mit IIS Express in Win 8.1 und externen Anforderungen.
Ich folge diesen Schritten, um die externe Anfrage zu debuggen:
Es funktioniert!
quelle
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
quelle
$(SolutionDir).vs\config\applicationHost.config
und musste auch den Port (8443) der Anwendung in der Windows-Firewall öffnen.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. .
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.
quelle
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.
quelle
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 ...
Ich hoffe es hilft.
quelle
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.
quelle
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:
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:
Certhash ist der "Fingerabdruck", den Sie aus den Zertifikateigenschaften in MMC erhalten können.
quelle
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
quelle
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.
quelle
[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.
quelle