我想在其他浏览器中测试我的 Web 应用程序。我已经安装了 Virtual PC 来实现这一点。ASP.NET 开发服务器不允许远程连接,因此虚拟 PC(网络上的另一台计算机)无法访问网站。
我找到了this帖子,但没有解决方案。
我知道使用 localhost 不起作用。我听说过使用机器 IP,但是如何获取正确的 IP?查看我的 lynksys 路由器管理员吗?
如果我能够获得我的 IP,我相信 asp.net dev 服务器也不允许远程连接。如何启用它来实现远程连接?
我想在其他浏览器中测试我的 Web 应用程序。我已经安装了 Virtual PC 来实现这一点。ASP.NET 开发服务器不允许远程连接,因此虚拟 PC(网络上的另一台计算机)无法访问网站。
我找到了this帖子,但没有解决方案。
我知道使用 localhost 不起作用。我听说过使用机器 IP,但是如何获取正确的 IP?查看我的 lynksys 路由器管理员吗?
如果我能够获得我的 IP,我相信 asp.net dev 服务器也不允许远程连接。如何启用它来实现远程连接?
它专门用于本地主机场景下(从与 Web 服务器相同的计算机上浏览)提供或运行 ASP.NET Web 页面。
换句话说,ASP.NET 开发服务器将为本地计算机的浏览器请求提供页面。它不会向其他计算机提供页面。此外,它不会提供应用程序范围之外的文件。
(*) 你必须从本地安装的 IIS 运行站点... 或者使用在这篇博客文章中描述的一些免费软件进行漂亮的黑客攻击:
iPhone 访问 Visual Studio ASP.NET 开发服务器
使用SPI 端口转发接受设备连接,执行以下操作:
将“本地端口”设置为设备将连接的端口号,我通常出于习惯使用 8080
将“远程主机”设置为 localhost
将“远程端口”设置为 ASP.NET 开发服务器端口
点击“激活”按钮开始接受连接。
(注意:确保你以管理员权限启动程序)
我对你的设置进行了一些猜测,请耐心等待:
如果你的虚拟机是 XP Professional、Vista Business、Windows 7 Professional 或更高版本,那么你应该能够在开发机上本地运行 IIS,并通过虚拟机名称从同一网络中的另一台机器访问该 Web 服务器。
同样地,如果你在实际机器上进行开发,并希望使用不同的虚拟机来访问 Web 应用程序,你应该确保已安装 IIS,在 IIS 中创建一个新网站,然后就可以通过机器名从虚拟机中浏览到Web应用程序。
无论哪种方式,都不要尝试使用 Visual Studio 的内置 Web 服务器,只需将你的站点发布到 IIS 中并以这种方式处理它。
祝好运,希望这有所帮助。
使用RINETD设置端口转发
详细信息请参见:http://blog.waynehartman.com/articles/218.aspx
我回答这个老问题是为了帮助人们在没有IIS的情况下使其正常工作。
第一步
您需要下载Fiddler。
Fiddler下载并安装后,打开它。
进入工具-> Fiddler选项-> 连接标签页-> 并勾选“允许远程计算机连接”:
重新启动Fiddler。
第二步
之后,在网络上的其他PC或虚拟机中,打开Internet Explorer-> Internet选项-> 连接标签-> LAN设置-> 勾选“使用LAN代理服务器”:
现在,您可以从网络上的另一台PC访问ASP.NET Web服务器(可能还需要更多配置,如防火墙、未限制的端口等,但这是一个良好的起点)!
要访问它-> http://localhost.:54814
注意:
如果你在虚拟机上运行Windows上的ASP.NET Dev Server或在另一台主机上运行,并且想要从Linux访问它,那么这应该是有效的。
由于某种原因,您无法直接连接到ASP.NET开发服务器端口,您需要首先在本地进行代理:
使用SPI Port Forward接受设备连接并执行以下操作:
将“本地端口”设置为设备将连接的端口号,例如8089 将“远程主机”设置为localhost
将“远程端口”设置为ASP.NET Dev Server端口
点击“Activate”按钮开始接受连接
(注意:确保您已以管理员权限启动程序)
将本地主机端口8089转发到Windows IP(用正确的IP替换GUEST_IP_HERE
):
iptables -t nat -A OUTPUT -m addrtype --src-type LOCAL --dst-type LOCAL -p tcp --dport 8089 -j DNAT --to-destination GUEST_IP_HERE:8089
iptables -t nat -A POSTROUTING -m addrtype --src-type LOCAL --dst-type UNICAST -j MASQUERADE
http://GUEST_IP_HERE:8089
。我尝试了以下操作,期望能够启用当前的 .net framework [ core / x-platform ] 6.0 发布提供的 asp.net 开发 Web 服务器,至少在本地子网中从其他机器访问而无需使用任何第三方软件来启用端口转发/代理到仅公开 Web 服务器的本地主机。
我能够从 Windows WSL [ Windows 子系统 Linux ] 分发会话启动 asp.net 开发 Web 服务器,并使用 Windows 主机 Wi-Fi 适配器 IP 地址访问它,但不能从我的子网中的另一台机器上访问,例如在桥接模式下运行的 VMware Linux 安装。如果将 VMware Linux 安装切换到 NAT 模式,则可以正常工作。
您对为什么这样做不允许其他主机访问有何想法吗?
netsh interface portproxy add v4tov4 listenport=<tcp port for non-localhost access allowed/enabled in windows firewall> listenaddress=0.0.0.0 < or windows wired/wifi ipaddress > connectport=<tcp port for localhost access to asp.net development web server> connectaddress=localhost
e.g. netsh interface portproxy add v4tov4 listenport=4430 listenaddress=0.0.0.0 connectport=7146 connectaddress=localhost & netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=5038 connectaddress=localhost
netsh interface portproxy show all
// for %i in ( 4430, 8080 ) do ( netsh interface portproxy delete v4tov4 listenport=%i listenaddress=0.0.0.0 )
netsh advfirewall firewall add rule name="Asp.Net Development Web Server Listeners to Expose" dir=in protocol=tcp localport=<csv list of tcp ports allowed/enabled in windows firewall> profile=private|any remoteip=localsubnet|any action=allow [ enable=yes ]
e.g. netsh advfirewall firewall add rule name="Asp.Net Development Web Server Listeners to Expose" dir=in protocol=tcp localport=4430,8080 profile=private remoteip=localsubnet action=allow
netsh advfirewall firewall show rule name="Asp.Net Development Web Server Listeners to Expose" [ or wf.msc | inbound rules ]
// netsh advfirewall firewall delete rule name="Asp.Net Development Web Server Listeners to Expose"
2022年:
在尝试了所有asp.net core .NET 6方面的方法并失败后,我发现了https://mitmproxy.org/
mitmproxy --mode reverse:https://localhost:7053 --ssl-insecure
适用于我的使用情况。
在手机和其他设备上,使用 http://{your-pc-ip}:8080
进行访问。