无法使用IP地址连接到IIS Express

时间:2012-12-26 14:55:55

标签: visual-studio-2012 iis-express

据我了解,VS2012默认配有IIS Express版本。它允许您使用IP地址连接到开发站点。目前我可以使用http://localhost:22222进行连接。但这不会使用此http://xxx.xxx.xxx.xxx:22222连接,其中xxx只是开发机器的本地IP。我已经验证IIS Express正在运行并正在使用。 IE错误是http 400错误请求。

3 个答案:

答案 0 :(得分:0)

我知道你问了很久以来的问题。我在this link.

回答了这个问题

转到IISExpress>Config文件夹,找到applicationhost.config。如下所示更改<bindings>

<bindings>
      <binding protocol="http" bindingInformation="*:1407:YOUR_IP_ADDRESS" />
</bindings>

在您执行此操作之前,您必须使用netsh命令注册此IP地址,如下所示:

如果您运行的是Windows 7,几乎所有传入连接都被锁定,因此您需要专门允许传入连接到您的应用程序。首先,启动管理命令提示符。其次,运行这些命令,将192.168.1.11:1234替换为您正在使用的IP和端口:

> netsh http add urlacl url=http://192.168.1.11:1234/ user=everyone

这只是告诉http.sys可以与这个网址对话。

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

这会在Windows防火墙中添加一条规则,允许本地子网上计算机的端口58938的传入连接。更多信息位于this link

注意:请务必仅通过locationg更改项目的绑定名称。您甚至可以保留localhost绑定并添加一个新的绑定,这样您就可以使用给定的IP地址访问同一个网页。

答案 1 :(得分:0)

对我有用的解决方案是this one

为我解决此问题的一件事是在applicationhost.config文件中使用我的网站的<bindings>部分中的以下行:

<bindings>
    <binding protocol="http" bindingInformation="*:8099:" />
</bindings>

关键是简单地删除localhost。不要用星号替换它,不要用IP或计算机名称替换它。在结肠后留空。

执行此操作后,我不需要以管理员身份运行Visual Studio,我可以自由地将项目属性中的Project Url更改为本地IP或计算机名称。然后,我设置了端口转发,可以访问Internet。

修改

我发现了一个让IIS Express正确提供外部请求非常重要的怪癖。

如果您以管理员身份运行Visual Studio / IIS Express,则不得使用&#34; netsh http add urlacl ...&#34;向HTTP.SYS添加预留。命令。这样做会导致HTTP 503 Service Unavailable错误。删除您在URLACL中所做的任何预订,以解决此问题。

如果您以管理员身份运行Visual Studio / IIS Express,则必须向URLACL添加预留。

答案 2 :(得分:0)

它位于哪里? applicationhost.config :)

这里

<块引用>

%userprofile%\Documents\IISExpress\config 文件夹

<块引用>

%userprofile%\My Documents\IISExpress\config 文件夹