设置:Windows 7,IIS已安装并正在运行。
以下代码:
HttpListener listener = new HttpListener();
listener.Prefixes.Add("http://server.com:8080/path");
listener.Start();
像魅力一样工作 - 在我的代码中收到对服务器发出的任何请求。
但是,当我进行以下更改(移动到端口80)时,http.sys / IIS(不确定哪个)返回HTTP 503错误:
listener.Prefixes.Add("http://server.com:80/path");
我已尝试设置URLACL,以管理员等方式运行此流程,但没有任何更改此行为。
编辑:清除它 - 这个混乱中没有实际的网络。所有这些都是在一台机器上本地完成的,用于测试目的(服务器和客户端)。
有什么想法吗?
答案 0 :(得分:1)
好的,不知道为什么,我讨厌这样的答案,但是...... 问题消失了。我可以验证没有代码被更改,并且这不是机器的瞬态状态,因为我在问题试验期间尝试多次重启它。
我不知道是什么造成的。
答案 1 :(得分:0)
我在Windows Server 2008 R2计算机上观察到了相同的情况。我最初在大多数示例使用的端口8080上开发了我的监听器,然后切换到端口80.我第一次在端口80上运行时,我得到了IIS启动页面(当前我的服务器上没有安装IIS角色,可能是IE缓存问题)或空白页面。我在处理程序中有断点,可以看到请求通过并成功应答。重新编译(清理),重新安装我的服务并重新启动IE后,问题就消失了。没有代码更改。
因此,如果您遇到该问题,请尝试重新编译清理,重新安装您的服务(或应用程序)并重新启动IE。