一個簡單但實用的命令行實用程序,使.NET開發人員能夠測試IIS Express在遠程設備上提供的Web應用程序。
您是.NET開發人員構建移動Web應用程序嗎?您是否對沒有簡單的方法使IIS Express接受遠程設備的連接感到沮喪? ...
如果您使用npm@^5.2.0 ,則無需安裝iisexpress-proxy ;您可以簡單地使用npx運行它。如果您使用的是舊版本的npm ,則很可能需要安裝iisexpress-proxy作為全局模塊:
npm install -g iisexpress-proxy注意:您需要安裝node.js。
如果您正在使用npm@^5.2.0 :
npx iisexpress-proxy@latest localPort to proxyPort另外,如果您將iisexpress-proxy安裝為全局npm模塊:
iisexpress-proxy localPort to proxyPort例如,如果您的應用程序的IIS Express端口為51123,請在命令提示符中運行此操作:
iisexpress-proxy 51123 to 3000
該程序將列出您可以在遠程設備上測試應用程序的外部地址。
iisexpress-proxy默認為HTTP,因此,如果您的應用程序正在運行HTTPS,則包含完整的URL。
iisexpress-proxy https://localhost:51123 to 3000請注意,這將終止HTTPS。在您的目標計算機上,使用HTTP而不是HTTP連接到端口3000 。
如果您希望代理本身為HTTPS提供服務,則可以使用完整的URL指定目標。
iisexpress-proxy https://localhost:51123 to https:// * :3000這將生成一個自簽名的證書並使用它,OpenSSL必須處於工作PATH 。
如果您在Windows上,獲得OpenSSL的最簡單方法是使用已預裝的git bash。
如果要綁定到特定接口而不是所有接口,請在目標URL中使用其IP,例如https://10.0.0.1:3000 。請注意,右側部分不能是域名。
您也可以使用iisexpress-proxy揭示在可通過VPN訪問的其他主機上運行的IIS服務器實例,例如:
iisexpress-proxy host:port to proxyHost:proxyPort例如,讓我們解決以下情況:
通過在命令提示符中運行此操作:
iisexpress-proxy 192.168.96.3:5000 to 192.168.0.102:3000...您可以通過將移動設備指向192.168.0.102:3000來訪問應用程序。
對於另一個高級示例,請考慮您在公共WiFi上,並且不想公開曝光您的開發服務器。您可以在筆記本電腦和手機之間設置VPN,並且只能在VPN接口(10.0.0.1)上公開服務器。那你可以運行
iisexpress-proxy 5000 to 10.0.0.1:8080...並打開http://10.0.0.1:8080在手機上啟用VPN,而其他WiFi用戶將無法連接。
注意:此功能是在V1.1.0上添加的(2015年10月21日發布) 。
Websocket支持由Stan Hebben在v1.4.0中添加 - 有關詳細信息,請參見PR#11。
如果您不想使用生成的證書,則可以使用cert / key參數提供自己的證書和密鑰:
iisexpress-proxy https://localhost:51123 to https:// * :3000 --key=./your-key.pem --cert=./your-cert.pem注意:此功能是在V1.7.0(發布02/14/2022)上添加的。
iisexpress-proxy在涉及集成的Windows身份驗證的方案中不起作用(請參見第#HERE)。
它是在localPort上的HTTP流量代表所有可用網絡接口上的proxyPort ,並且還更改了主機標頭的來源,使您可以測試由IIS Express在各種遠程設備(移動設備,其他台式機等)上託管的Web應用程序。
如果您需要訪問瀏覽器請求的原始主機,則請求標題將包括X-Forward標頭。在ASP.NET中, Request.Headers["x-forwarded-host"]將包含請求的主機。
此命令行實用程序包裝HTTP-Proxy。原始的HTTP-Proxy徽標是由Diego Pasquali創建的。
如果您發現此存儲庫很有用,請給它一顆星,發推文,並在LinkedIn上認可我:
我從剛剛學習進行網絡開發或只是尋求解決他們要處理的非常具體的問題的人們那裡收到了很多問題。雖然我會為社區的利益回答其中的一些,但請理解,開源是一種共同的努力,這絕對不是關於其他人的工作。在Github之類的地方,這意味著鼓勵提出問題,但是提出有用的PR會好得多。如果我願意免費分享我的一些代碼,我會出於多種原因這樣做:我自己的智力挑戰,驕傲,傲慢,固執的人相信我為共同的進步和自由做出了貢獻。您的特殊幸福感可能不是這些原因之一。我不是提供免費諮詢公司的業務,因此,如果您需要我的幫助來解決您的特定問題,則需要收取費用。
2022年2月24日,俄羅斯非法入侵烏克蘭。這是對鄰國主權的不合理,無端的攻擊,但也是對國際和平與穩定的開放罪,有可能淪為核事件,威脅著人類的存在。我是羅馬尼亞人(歐盟)公民,但我與烏克蘭站在一起,我正在竭盡所能阻止這種瘋狂。這是您可以表達支持的方法。
ISC許可證。