Ein einfaches und dennoch praktisches Befehlszeilen-Dienstprogramm, mit dem .NET-Entwickler Webanwendungen testen können, die von IIS Express auf Remote-Geräten bedient werden.
Sind Sie ein .NET -Entwickler, der mobile Webanwendungen erstellt? Waren Sie jemals frustriert darüber, dass es keine einfache Möglichkeit gibt, IIS Express zu ermöglichen, Verbindungen von Remote -Geräten zu akzeptieren? ...
Es ist nicht erforderlich, iisexpress-proxy zu installieren, wenn Sie npm@^5.2.0 verwenden. Sie können es einfach mit npx ausführen. Wenn Sie eine ältere Version von npm verwenden, möchten Sie höchstwahrscheinlich als globales Modul iisexpress-proxy werden:
npm install -g iisexpress-proxyHinweis: Sie müssen Node.js installieren lassen.
Wenn Sie npm@^5.2.0 verwenden:
npx iisexpress-proxy@latest localPort to proxyPort Alternativ, wenn Sie Iisexpress-Proxy als globales npm Modul installiert haben:
iisexpress-proxy localPort to proxyPortWenn der IIS Express -Port Ihrer Anwendung beispielsweise 51123 ist, führen Sie diese in der Eingabeaufforderung aus:
iisexpress-proxy 51123 to 3000
Das Programm listet die externen Adressen auf, die Sie zum Testen Ihrer Anwendung auf Remote -Geräten verwenden können.
iisexpress-proxy standardmäßig mit HTTP. Wenn Ihre Anwendung also HTTPS ausführt, fügen Sie die vollständige URL hinzu.
iisexpress-proxy https://localhost:51123 to 3000 Beachten Sie, dass dies HTTPS beendet. Stellen Sie auf Ihrem Zielgerät über http und nicht https an Port 3000 her, nicht zu Port 3000.
Wenn Sie möchten, dass der Proxy selbst HTTPS serviert, können Sie das Ziel auch mit der vollständigen URL angeben.
iisexpress-proxy https://localhost:51123 to https:// * :3000 Dies erzeugt ein selbstsigniertes Zertifikat und verwendet es, OpenSSL muss auf PATH sein, damit dies funktioniert.
Wenn Sie unter Windows sind, ist der einfachste Weg, OpenSSL zu erhalten, die damit verbundene Git-Bash, die vorinstalliert ist.
Wenn Sie an eine bestimmte Schnittstelle anstelle aller von ihnen binden möchten, verwenden Sie seine IP in der Ziel -URL, z. B. https://10.0.0.1:3000 . Beachten Sie, dass der rechte Teil kein Domain-Name sein kann.
Sie können auch IISExpress-Proxy verwenden, um eine IIS-Serverinstanz aufzudecken, die auf einem anderen Host ausgeführt wird, das über VPN wie folgt zugänglich ist:
iisexpress-proxy host:port to proxyHost:proxyPortGehen wir zum Beispiel dieses Szenario an:
Indem Sie dies in der Eingabeaufforderung ausführen:
iisexpress-proxy 192.168.96.3:5000 to 192.168.0.102:3000... Sie können auf die Anwendung zugreifen, indem Sie die mobilen Geräte auf 192.168.0.102:3000 verweisen.
Bedenken Sie, dass Sie auf einem weiteren fortgeschrittenen Beispiel auf dem öffentlichen WLAN stehen und Ihren Entwicklerserver nicht öffentlich aufdecken möchten. Sie können ein VPN zwischen Ihrem Laptop und Ihrem Telefon einrichten und den Server nur auf der VPN -Schnittstelle (10.0.0.1) freilegen. Dann kannst du rennen
iisexpress-proxy 5000 to 10.0.0.1:8080... und öffnen Sie http://10.0.0.1:8080 auf Ihrem Telefon mit aktiviertem VPN, während andere WLAN -Benutzer keine Verbindung herstellen können.
Hinweis: Diese Funktionalität wurde bei v1.1.0 hinzugefügt (veröffentlicht 21.10.2015) .
Die Unterstützung von WebSocket wurde in v1.4.0 von Stan Hebben hinzugefügt - Einzelheiten siehe PR #11.
Wenn Sie nicht generierte Zertifikate verwenden möchten, können Sie mithilfe von cert / key Ihr eigenes Zertifikat und Ihre Schlüssel vorlegen:
iisexpress-proxy https://localhost:51123 to https:// * :3000 --key=./your-key.pem --cert=./your-cert.pemHinweis: Diese Funktionalität wurde bei v1.7.0 hinzugefügt (veröffentlicht 14.02.2022) .
iisexpress-proxy funktioniert nicht in Szenarien mit integrierter Windows-Authentifizierung (siehe Ausgabe #here).
Es wird der HTTP -Datenverkehr auf localPort auf proxyPort auf allen verfügbaren Netzwerkschnittstellen vergrößert. Außerdem ändert sich die Herkunft des Host -Headers, sodass Sie Webanwendungen testen können, die von IIS Express auf verschiedenen Remote -Geräten gehostet werden (mobile Geräte, andere Desktops usw.).
Wenn Sie auf den vom Browser angeforderten ursprünglichen Host zugreifen müssen, enthalten die Anforderungsheader X-Forward-Header. In ASP.NET enthält Request.Headers["x-forwarded-host"] den angeforderten Host.
Dieses Dienstprogramm für Befehlszeilen wickelt HTTP-Proxy. Das ursprüngliche HTTP-Proxy-Logo wurde von Diego Pasquali erstellt.
Wenn Sie dieses Repo nützlich finden, geben Sie ihm bitte einen Stern, twittern Sie darüber und unterstützen Sie mich auf LinkedIn:
Ich bekomme viele Fragen von Leuten, die nur lernen, Webentwicklung durchzuführen oder einfach ein ganz bestimmtes Problem zu lösen, mit dem sie es zu lösen sind. Während ich einige von ihnen zum Nutzen der Community beantworten werde, verstehen Sie bitte, dass Open-Source eine gemeinsame Anstrengung ist und es definitiv nicht darum, die Arbeit anderer Menschen zu haben. An Orten wie Github bedeutet dies, dass die Auflösung von Problemen gefördert wird, aber es ist viel besser, nützliche PRs zu finden. Wenn ich bereit bin, einen Teil meines Code kostenlos zu teilen, mache ich es aus einer Reihe von Gründen: meine eigenen intellektuellen Herausforderungen, Stolz, Arroganz, Sturheit zu glauben, dass ich einen Beitrag zu gemeinsamen Fortschritt und Freiheit usw. leisten usw. Ihr besonderes Wohlbefinden ist wahrscheinlich nicht einer dieser Gründe. Ich bin nicht im Geschäft, kostenlose Beratung bereitzustellen. Wenn Sie also meine Hilfe benötigen, um Ihr spezifisches Problem zu lösen, gibt es eine Gebühr dafür.
Am 24. Februar 2022 fiel Russland rechtswidrig in die Ukraine ein. Dies ist ein ungerechtfertigter, nicht provozierter Angriff auf die Souveränität eines Nachbarlandes, aber auch ein offener Affront auf internationalen Frieden und Stabilität, das das Potenzial hat, zu einem nuklearen Ereignis zu entgeegen, das die Existenz der Menschheit bedroht. Ich bin ein rumänischer (EU) Bürger, aber ich stehe mit der Ukraine und mache alles in meiner Macht Stehende, um diesen Wahnsinn zu stoppen. So können Sie Ihre Unterstützung zeigen.
Die ISC -Lizenz.