IIS Express响应服务不可用于特定端口上的本地请求

时间:2014-11-13 07:30:13

标签: asp.net iis-express http-status-code-503

我有一个在自动生成的端口上运行的ASP.NET应用程序,如53000.在移动到另一个端口(在我的情况下为8080)后,IIS Express开始响应503 Service Unavailable。其他港口确实有效。

Internet上有很多关于检查内容和调试方法的提示,而在大多数情况下,提示与IIS相关或从远程计算机访问。尽管如此,我还是尝试过:

  • 查看%userprofile%\Documents\IISExpress\config\applicationhost.config
  • 使用netsh http add urlacl url=http://mymachinename:50333/ user=everyone
  • 授予权限
  • 使用端口8080在不同机器上测试相同的应用程序 - 确实有效
  • 在端口8080上运行另一台服务器(mongoose) - 确实有效
  • 已验证使用netstat收听端口 - 没问题

我还没有检查防火墙和文件夹权限,因为应用程序是从其他端口提供的。

1 个答案:

答案 0 :(得分:12)

最后,我在阅读这篇文章后解决了这个问题 - http://haacked.com/archive/2007/05/21/the-iis-7-team-rocks.aspx/。具体来说,它建议审查urlacl绑定并删除有问题的绑定。看起来,在过去的某个时候,添加了对8080的绑定。奇怪的是,它确实允许从每台计算机访问每个用户到这个端口,但显然这是一个问题。

解决方案:运行netsh http show urlacl。我找到了2个相关的绑定 - 一个是旧的,另一个是最近的,比如:

Reserved URL            : http://+:8080/
    User: \Everyone
        Listen: Yes
        Delegate: No
        SDDL: D:(A;;GX;;;WD)

使用netsh http delete urlacl url=http://+:8080/

删除它