1编辑applicationhost.config文件(位于文档的IISExpress文件夹中)后,您的网站绑定应如下所示:
<bindings>
<binding protocol="http" bindingInformation="*:8080:*" />
</bindings>
绑定包括三个部分。首先是IP地址或列表,或者在这种情况下为通配符。其次是端口号,其次是主机名,列表或通配符(用于按Host
标题过滤)。出于开发目的,此处最适合使用通配符,因为您可能会使用唯一的端口。
2因为您使用的是非本地主机绑定,所以需要其他权限。您可以以管理员身份运行VS,或者最好添加URL ACL来授予所需的权限。在下面的示例中,权限授予每个人,但您可以使用自己的用户名。
注:本urlacl
必须完全匹配的结合。因此,即使后者是前者的子集,urlacl
for http://*:8080
也会允许的绑定*:8080:*
,但不允许的绑定*:8080:localhost
。这意味着,如果您在中列出主机标头而不是使用通配符,则applicationhost.config
必须urlacl
为它们添加匹配项。
为外部流量配置HTTP.sys的步骤类似于将站点设置为使用保留端口。在Windows 7或Windows Vista上,从提升权限的命令提示符下,运行以下命令:
netsh http add urlacl url=http://*:8080/ user=DOMAIN\username
在Windows XP上,从提升的命令提示符处运行以下命令:
httpcfg set urlacl /u http://*:8080/ /a D:(A;;GX;;;WD)
注意2如果以管理员身份运行VS或添加ACL条目无法解决问题,请从命令行运行IIS Express,并检查是否存在任何绑定注册失败消息。要从命令行开始,请输入以下命令:
iisexpress.exe /site:"your-site-name"
3最后,您将需要适当的防火墙条目。为此,最简单的方法是使用“具有高级安全性的Windows防火墙”控制台。
在“入站规则”下,选择“新规则...”。
- 规则类型为“自定义”。
- 程序为服务->自定义...->仅适用于服务。(尽管IIS Express不是服务,但它使用的HTTP多路复用器是)。
- 协议是TCP
- 特定端口:列出所有IIS Express绑定的所有端口。您可以回到此规则并随时添加端口。(如果这变得很烦人,则可以添加一个范围,例如
40000-65534
覆盖Visual Studio使用的整个范围,但要注意这不太安全)。
- 动作是“允许连接”
- 个人资料将是以下内容之一。如有疑问,请选择“域+私有”。
- “域”,如果您的是公司台式机,并且仅在本地域上运行
- “域+私有”:如果您是在非公司环境中的私有开发机器,或者是在家里工作时也需要工作的公司笔记本电脑。
- 如果您需要在非私有网络上进行演示,则为“域,私有和公共”。
- 名称应类似于“ IIS Express Dev Server”