126

是否可以使用 IIS Express 在网络上托管页面。开箱即用它可以执行 localhost 但我正在尝试将其绑定到 IP 地址。

4

5 回答 5

123

我想你可以。

为此,您需要applicationhost.config手动编辑文件(编辑 bindingInformation ' <ip-address>:<port>:<host-name>')

要启动 iisexpress,您需要管理员权限

于 2011-02-01T23:55:49.647 回答
104

为了让 IIS Express 回答任何 IP 地址,只需将地址留空,即:

bindingInformation=":8080:"

不要忘记在更改发生之前重新启动 IIS express。

于 2011-12-20T00:07:58.413 回答
46

如上所述,编辑应用程序 host.config。一个简单的方法是使用 IIS Express 在 VS 中运行您的站点。右键单击系统托盘图标,显示所有应用程序。选择您的站点,然后单击底部的配置链接将其打开。

我建议添加另一个绑定条目,并将最初的 localhost 留在那里。此附加绑定将作为站点下的单独应用程序出现在 IIS Express 系统托盘中。

为了避免必须以管理员身份运行 VS(有很多不以管理员身份运行的充分理由),请添加如下 netsh 规则(显然用您的值替换 IP 和端口) - 为此您需要一个管理员 cmd.exe,它只需要运行一次:

netsh http add urlacl url=http://192.168.1.121:51652/ user=\Everyone

netsh 可以添加诸如 url= http://+:51652/ 之类的规则,但我未能将其与 IIS Express 很好地结合在一起。您可以使用netsh http show urlacl列出现有规则,并且可以使用 删除它们netsh http delete urlacl url=blah

更多信息:http: //msdn.microsoft.com/en-us/library/ms733768.aspx

于 2015-02-27T12:49:19.323 回答
16

下面是使用 IIS Express 运行我的 x64 位 IIS 应用程序所需的完整更改,以便远程主机可以访问它:

iisexpress /config:"C:\Users\test-user\Documents\IISExpress\config\applicationhost.config" /site:MyWebSite
Starting IIS Express ...
Successfully registered URL "http://192.168.2.133:8080/" for site "MyWebSite" application "/"
Registration completed for site "MyWebSite"
IIS Express is running.
Enter 'Q' to stop IIS Express

配置文件 (applicationhost.config) 添加了如下部分:

<sites>
  <site name="MyWebsite" id="2">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
      <virtualDirectory path="/" physicalPath="C:\build\trunk\MyWebsite" />
    </application>
    <bindings>
      <binding protocol="http" bindingInformation=":8080:192.168.2.133" />
    </bindings>
  </site>

可以按如下方式启用 .NET 框架的 64 位版本:

<globalModules>
    <!--
        <add name="ManagedEngine" image="%windir%\Microsoft.NET\Framework\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness32" />
        <add name="ManagedEngineV4.0_32bit" image="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" />
    -->             
    <add name="ManagedEngine64" image="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" />
于 2012-10-16T15:33:25.507 回答
10

改变bindingInformation=":8080:"

并且记得关闭 IISExpress 的防火墙

于 2012-10-16T04:16:41.960 回答