是否可以使用 IIS Express 在网络上托管页面。开箱即用它可以执行 localhost 但我正在尝试将其绑定到 IP 地址。
5 回答
我想你可以。
为此,您需要applicationhost.config
手动编辑文件(编辑 bindingInformation ' <ip-address>:<port>:<host-name>
')
要启动 iisexpress,您需要管理员权限
为了让 IIS Express 回答任何 IP 地址,只需将地址留空,即:
bindingInformation=":8080:"
不要忘记在更改发生之前重新启动 IIS express。
如上所述,编辑应用程序 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
。
下面是使用 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" />
改变bindingInformation=":8080:"
并且记得关闭 IISExpress 的防火墙