1编辑 applicationhost.config 文件(位于文档中的 IISExpress 文件夹中)后,您的站点绑定应如下所示:
<bindings>
<binding protocol="http" bindingInformation="*:8080:*" />
</bindings>
绑定由三部分组成。首先是一个 IP 地址或列表,或者在本例中是一个通配符。其次是端口号,第三是主机名、列表或通配符(用于按Host
标头过滤)。出于开发目的,通配符在这里最合适,因为您可能会使用唯一的端口。
2因为您使用的是非本地主机绑定,所以需要额外的权限。您可以以管理员身份运行 VS,或者最好添加 URL ACL以授予所需的权限。在下面的示例中,每个人都获得了权限,但您可以使用自己的用户名。
注意:必须urlacl
与绑定完全匹配。所以urlacl
forhttp://*: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 使用的整个范围,但请注意这不太安全)。
- 操作是“允许连接”
- 配置文件将是以下之一。如有疑问,请选择“域 + 私有”。
- “域”,如果您的桌面是公司桌面并且只能在本地域上运行
- “Domain + Private” 如果你是非企业环境中的私人开发机器,或者是在家办公也需要工作的企业笔记本电脑。
- “域、私有和公共”,如果您需要在非私有网络上进行演示。
- 名称应该类似于“IIS Express Dev Server”