将IIS Express配置为允许外部访问VS2010项目
将IIS Express配置为允许外部访问VS2010项目
我正在使用VS2010开发一个项目,并且能够通过IIS Express在本地查看我的网站。我想允许网络上的外部访问。
我所有的研究都将我带到了这篇博客文章:http://blogs.iis.net/vaidyg/archive/2010/07/29/serving-external-traffic-with-webmatrix-beta.aspx,这对我很有帮助,但是似乎没有显示如何在Visual Studio中启动的项目中配置绑定(我无法在截图中找到该屏幕,并且当我从Visual Studio运行站点时编辑绑定信息不会反映在应用程序host.config中)。
1 编辑applicationhost.config文件(位于文档中的IISExpress文件夹中),您的站点绑定应该像下面所示:
绑定由三个部分组成。首先是IP地址或列表,或者像这种情况一样是一个通配符。其次是端口号,第三个是主机名,列表或通配符(用于通过Host头过滤)。出于开发目的,通配符在这里是最合适的,因为您可能会使用唯一的端口。
2 因为您使用的是非本地主机绑定,所以需要额外的权限。您可以以管理员身份运行VS,或者最好您应该添加URL ACL以授予所需的权限。在下面的示例中,权限是赋予每个人的,但您可以使用自己的用户名。
注意:urlacl必须完全匹配绑定。因此,针对http:// *:8080的urlacl将允许绑定*: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防火墙”控制台。
在“Inbound Rules”下选择“New Rule…”。
- 规则类型为“Custom”。
- 程序是Services->Customize…->Apply to services only。(虽然IIS Express不是一个服务,但它使用的HTTP多路复用器是)。
- 协议是TCP
- 指定端口:列出所有IIS Express绑定的端口。您可以随时回到此规则并添加端口。(如果这变得烦人,您可以添加一个范围,例如
40000-65534
,该范围覆盖Visual Studio使用的整个范围,但请注意这不太安全)。 - 操作是“允许连接”
- 配置文件将是以下之一。如果不确定,则选择“域+私有”。
- “域”,如果您的是公司桌面,并且仅在本地域上运行
- “域+私人”,如果您的是私人开发机器,位于非公司环境中,或者是公司笔记本电脑,在家工作时也需要工作。
- “域,私人和公共”,如果您需要在非私人网络上进行演示。
- 名称应为“IIS Express Dev Server”之类的东西