在Android手机上debuggingASP.NET MVC应用程序

目的

我正在寻找最简单的,一步一步的设置过程来debugging我的ASP.NET MVC 4应用程序使用我的IP地址作为URL。 我希望能够使用我的电脑本地IP地址(例如 – http://192.168.1.109:25968 )通过我的Android手机访问应用程序,该手机通过Wi-Fi连接到本地networking。 我在Windows 7上运行Visual Studio 2012 RC。

这个问题已经被其他两个问题( 这一个和这个问题 )解决了,但答案非常简短,根本没有帮助我。 之前我必须通过在计算机上敲打这个问题来解决这个问题,并且毫无顾忌地改变每一种设置,直到有效。 我不想再经历这个。 我想知道我这次做了什么。

安装信息

该项目只是一个默认的ASP.NET MVC 4互联网应用程序。 我很确定我还没有改变任何东西。

我的应用程序的“属性”中的“Web”选项卡设置为“使用本地IIS Web服务器”,并选中“使用IIS Express”。 项目的URL是http://localhost:25968/ 。 我看到“locahost”可能有问题,但VS不会让我inputIP地址或通配符。

我的应用程序的IIS Express applicationhost.config文件如下。

 <site name="APPLICATION_NAME" id="13"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="C:\Users\USERNAME\Documents\Visual Studio 11\Projects\APPLICATION_NAME" /> </application> <bindings> <binding protocol="http" bindingInformation="*:25968:localhost" /> </bindings> </site> 

发生了什么

当我使用http://localhost:25968从主机连接到站点时,它工作得很好。 如果我尝试从主机使用http://192.168.1.109:25968 ,则会收到“错误的请求 – 无效的主机名,HTTP错误400.请求主机名无效”。 从networking上的另一台计算机使用这个相同的URL,它只是超时。

Solutions Collecting From Web of "在Android手机上debuggingASP.NET MVC应用程序"

授予自己绑定到本地主机和通配符networking适配器的权限,configurationIIS Express绑定到它们,并在防火墙上打开端口。 通过使用通配符,您不必在IP地址更改时重新configuration。

步骤详细信息:(他们假设端口号为5555 – 而不是使用您的实际端口)

  1. 以pipe理员身份从命令提示符运行这些命令:

     netsh http add urlacl url=http://localhost:5555/ user="NT AUTHORITY\INTERACTIVE" netsh http add urlacl url=http://*:5555/ user="NT AUTHORITY\INTERACTIVE" 
  2. .vs \ config \ applicationhost.config (或VS2015之前, %USERPROFILE%\ Documents \ IISExpress \ config \ applicationhost.config ),添加一个通配符绑定到您的网站。 结果应该是这样的:

     <site name="..." id="..."> <!-- application settings omitted for brevity --> <bindings> <binding protocol="http" bindingInformation="*:5555:localhost" /> <binding protocol="http" bindingInformation="*:5555:*" /> </bindings> </site> 
  3. 打开IIS Express站点的防火墙端口。 您可以从pipe理命令提示符执行此操作:

     netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=5555 profile=private remoteip=localsubnet action=allow 

给这个镜头:

 netsh http add urlacl url=http://192.168.1.109:25968/ user=everyone 

来自: http : //johan.driessen.se/posts/Accessing-an-IIS-Express-site-from-a-remote-computer

您可以将计算机的主机名称replace为IP地址,这样每次IP更改时都不必重新运行。

我需要执行cfeduke提供的链接中的所有步骤。 (不只是他在回答中描述的那个)。

  1. 绑定'localhost'后,将<binding protocol="http" bindingInformation="*:58938:192.168.1.42" />到applicationhost.config。
  2. 运行netsh http add urlacl url=http://192.168.1.42:58938/ user=everyone
  3. 运行netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=58938 profile=private remoteip=localsubnet action=allow

如果你的机器上有Node.js请尝试这个工具: Ionut-Cristian Florescu

https://github.com/icflorescu/iisexpress-proxy

要安装它,只需在命令行中写入npm install -g iisexpress-proxy

然后检查您的项目中的端口,并将其映射到外部端口。 iisexpress-proxy [localPort] to [proxyPort]