从网络上的另一台PC访问ASP.NET Development Server

时间:2009-11-13 16:23:28

标签: asp.net cross-browser virtual-pc remote-access

我想在其他浏览器中测试我的网络应用。我已经安装了Virtual PC来做到这一点。 ASP.NET开发服务器不允许远程连接,因此虚拟PC(网络上的另一台计算机)无法访问该网站。

我发现this帖子已经开始,但没有解决方案。

我知道使用localhost是行不通的。我听说过使用机器ip,但是如何获得正确的ip?看看我的lynksys路由器管理员?

如果我要获得我的IP,我确定asp.net开发服务器不允许远程连接。如何启用它?

7 个答案:

答案 0 :(得分:32)

答案是:(*)。即使打开Windows防火墙TCP端口,也无法在一台计算机上访问另一台计算机上的ASP.NET Development Server。

来自MSDN文章"Web Servers in Visual Web Developer"

  

它专门用于在本地主机方案下提供或运行ASP.NET网页(从与Web服务器相同的计算机浏览)。

     

换句话说,ASP.NET Development Server将为本地计算机上的浏览器请求提供页面。它不会将页面提供给另一台计算机。此外,它不会提供超出应用程序范围的文件。

(*)您必须从本地安装的IIS运行您的网站...或使用此博客文章中描述的一些免费软件进行好的黑客攻击:

<强> iPhone Accessing the Visual Studio ASP.NET Development Server

  

使用SPI Port Forward接受设备连接,请执行以下操作:

     

将“本地端口”设置为设备将连接的端口号,我通常习惯使用8080   将“远程主机”设置为localhost
  将“远程端口”设置为ASP.NET Dev Server端口

单击“激活”按钮开始接受连接

(注意:确保您已启动具有管理员权限的程序)

答案 1 :(得分:12)

我正在猜测你的设置,所以请耐心等待:

如果您的虚拟机是XP Professional,Vista Business,Windows 7 Professional或更高版本,那么您应该能够在开发计算机上本地运行IIS,并通过虚拟机从同一网络上的另一台计算机访问该Web服务器名。

同样,如果您正在真机上进行开发并希望使用不同的虚拟机来访问Web应用程序,那么您应确保已安装IIS,在IIS中创建一个新网站,您应该通过虚拟机中的计算机名称浏览到Web应用程序。

无论哪种方式,都不要尝试使用Visual Studio中的内置Web服务器,只需将您的站点发布到IIS并以这种方式使用它。

祝你好运,希望这有助于一些人。

答案 2 :(得分:8)

使用RINETD设置端口转发
Deatils在这里:http://blog.waynehartman.com/articles/218.aspx

答案 3 :(得分:7)

如果您不想使用IIS(或隧道),则另一个答案:https://stackoverflow.com/a/12008223/1552178

  

在主机上使用fiddler或类似功能 - 在客户端上设置浏览器   VM使用代理然后就像往常一样使用localhost:dev_port   客户端。

     

来自客户端的所有请求都转到您的开发计算机上的代理   路由到dev机器上的localhost和ASP.net dev服务器   认为请求来自你的开发机器!

答案 4 :(得分:4)

我正在回答这个老问题,以帮助人们使其无IIS

<强> 1。第一步

您必须下载Fiddler

下载并安装Fiddler后,打开它。

进入工具 - &gt; Fiddler选项 - &gt;连接标签 - &gt;并选中“允许远程计算机连接”

enter image description here

重启Fiddler。

<强> 2。第二步

此后,在网络上的其他PC或VM 打开Internet Explorer - &gt;互联网选项 - &gt;连接标签 - &gt; Lan设置 - &gt;选中“为LAN使用代理服务器”

enter image description here

  1. 地址是DEV机器的IP地址。
  2. 并将端口8888
  3. 现在,您可以从网络上的另一台PC访问ASP.NET Web服务器(也许您有更多配置要做,如防火墙,无限制端口等​​,但这是一个好的开始)!

    要访问它 - &gt; http://localhost.:54814

    • 不要忘记“localhost”之后的附加点! (覆盖本地localhost)
    • 在我的例子中,端口“54814”是ASP.NET Web服务器端口。

    注意:

    • 要测试代理是否有效,您可以尝试:http://localhost.:8888
    • 也许我忘了指出一些配置,但它总是取决于网络基础设施。

答案 5 :(得分:1)

Linux的工作解决方案

如果您在VM或其他主机上的Windows上运行ASP.NET Dev Server而您想从Linux访问它

,这应该可行

在Windows计算机上

由于某种原因,您无法直接连接到ASP.NET dev服务器端口,您需要先在本地代理它:

  

使用SPI Port Forward接受设备连接,请执行以下操作:

     

将“本地端口”设置为设备将连接的端口号,例如8089   将“远程主机”设置为localhost
  将“远程端口”设置为ASP.NET Dev Server端口

单击“激活”按钮开始接受连接

(注意:确保您已启动具有管理员权限的程序)

在Linux机器上

本地将localhost端口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

这是必需的,因为开发服务器专门在请求中查找localhost,并且不会从主机响应http://GUEST_IP_HERE:8089

答案 6 :(得分:-4)

打开命令提示符并键入; “ipconfig”这将为您提供机器的IP地址。

如果禁用防火墙(至少对于asp.net开发端口),您应该可以输入虚拟PC的浏览器http://192.168.1.3:3243/default.aspx