一个简单但实用的命令行实用程序,使.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许可证。