我有一个自托管的WCF服务在端口80上侦听。当我尝试连接到它时,我会得到一个503 Service Unavailable
。
我的WCF进程正在运行,IIS正在运行。我的URL ACL是正确的。控件从未到达我的WCF进程。
WCF跟踪只显示:
Listen at 'http://localhost/Foo/Bar/'.
失败的请求跟踪中没有显示任何内容,该功能已正确打开--将显示其他跟踪。503 Service Unavailable
消息非常简单,意味着它来自内核模式,而不是用户模式。
我打开了HTTP.SYS跟踪,这表明名称空间是正确保留的:
Attempted to add URL (http://localhost:80/Foo/Bar/) to URL
group (0xFD0000014000002E). Status: 0x0.
但后来,在同一轨迹中,我看到:
Request (request ID 0xF600000580000006) rejected
due to reason: UrlGroupLookupFailed.
我试过几次iisreset
,但都无济于事。我还重新启动了电脑;同样的问题。
出了什么问题?我还能做些什么来进一步调试这个问题?
更新
如果我重命名URL(例如,将"Foo"更改为"Fizz"),那么它就可以工作了。某个地方的配置似乎已损坏。
我在同一进程中托管了其他绑定到https://localhost/Foo/Bar/
的服务,它们似乎工作正常。
不仅仅是WCF
我在一个自托管的Nancy服务上也遇到了同样的问题,下面的一位评论者报告了一个自主持的ServiceStack服务器的同样问题。
再次出现问题。四处寻找URL ACL。有几个URL ACL可能被认为是不明确的。
我有http://+:80/Foo/
、http://+:80/Foo/Bar/
和http://localhost:80/Foo/Bar/
。我删除了除"localhost"之外的所有内容,它开始工作。
我不知道是因为歧义,还是因为删除额外内容导致了重置,我不知道。。。