是否可以使用IIS Express在网络上托管网页?默认情况下,它只能在本地主机上运行,但我正在尝试将其绑定到一个IP地址。
是否可以使用IIS Express在网络上托管网页?默认情况下,它只能在本地主机上运行,但我正在尝试将其绑定到一个IP地址。
我认为你是可以的。
要实现这个目标,你需要手动编辑applicationhost.config
文件(编辑bindingInformation '<ip-address>:<port>:<host-name>
')。
启动iisexpress需要管理员权限。
<binding protocol="http" bindingInformation="*:8081:localhost" /> <binding protocol="http" bindingInformation="*:8083:192.168.2.102" />
- Daniel B. Chapman/{project folder}/.vs/config/applicationhost.config
移动到 /{project folder}/.vs/{solution name}/config/applicationhost.config
。我遇到了支持两个版本的VS的问题,忘记修改正确的配置文件。 - TabsNotSpaces为了让IIS Express响应于任何IP地址,只需将地址留空即可,例如:
bindingInformation=":8080:"
在更改生效之前,请不要忘记重新启动IIS Express。
applicationhost.conifg
文件中有许多 bindinginformation
属性,请选择属于您网站的那一个! - Ghasan غسانbindingInformation=":8080:"
而不是bindingInformation="*:8080:*"
,以防止Visual Studio在重新启动后编写新的<site>
条目。 - Tod ThomsonbindingInformation=":8080:"
。由于某些原因,.NET Core Web
应用程序中的 *8080*
无法工作。别忘了运行 netsh:netsh http add urlacl url=http://*:8080/ user=\Everyone
,以避免将 VS 作为管理员运行,并在 Windows 防火墙或管理防火墙设置的应用程序中添加此端口的防火墙规则。 - Daniel Bogdan如上所述,编辑应用程序的 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
netsh http add urlacl url=http://*:10368/ user=everyone
和 <binding protocol="http" bindingInformation=":10368:" />
(使用 "*" 而不是 "+")来使 IIS Express 绑定到所有可用的 IP 地址。 - knee-cola以下是我需要完成的所有更改,以便在使用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的防火墙