我有一个运行中的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
侦听端口-没问题
我尚未检查防火墙和文件夹权限,因为应用程序是从其他端口提供服务的。
最佳答案
最后,阅读完这篇文章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/
删除它