IIS状态200(浏览器) - 404(Wcf)

时间:2011-03-31 23:09:30

标签: c# web-services iis wcf

我有一个WCF服务,IIS托管。它受基本身份验证保护。

当我使用浏览器浏览时,我得到401(非挑战)和200(成功回复)。 相同的网站,页面等,通过控制台应用程序的WCF请求,我得到401,然后404(找不到页面)。

两者都使用相同的用户名和密码。该机器只是一个开发桌面。不在域名上。主机是hostwebsite.local,主机文件绑定到127.0.0.1

以下是IIS日志。 前两行是调用失败的WCF。最后两行是成功的浏览器调用。

唯一真正的区别是GET / POST。当身份验证是匿名的时,WCF会起作用。

如何调试此问题?谢谢。

#Software: Microsoft Internet Information Services 7.5
#Version: 1.0
#Date: 2011-03-31 22:53:58
#Fields: date time s-sitename s-computername s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs-version cs(User-Agent) cs(Cookie) cs(Referer) cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
2011-03-31 22:56:37 W3SVC2 MIKEV-WS 127.0.0.1 POST /Services/EchoService.svc - 80 - 127.0.0.1 HTTP/1.1 - - - hostwebsite.local 401 2 5 6633 362 3
2011-03-31 22:56:37 W3SVC2 MIKEV-WS 127.0.0.1 POST /Services/EchoService.svc - 80 admin 127.0.0.1 HTTP/1.1 - - - hostwebsite.local 404 0 0 210 568 2
2011-03-31 22:57:07 W3SVC2 MIKEV-WS 127.0.0.1 GET /Services/EchoService.svc - 80 - 127.0.0.1 HTTP/1.1 Mozilla/5.0+(Windows;+U;+Windows+NT+6.1;+en-US)+AppleWebKit/534.16+(KHTML,+like+Gecko)+Chrome/10.0.648.133+Safari/534.16 - - hostwebsite.local 401 2 5 6633 442 1
2011-03-31 22:57:10 W3SVC2 MIKEV-WS 127.0.0.1 GET /Services/EchoService.svc - 80 admin 127.0.0.1 HTTP/1.1 Mozilla/5.0+(Windows;+U;+Windows+NT+6.1;+en-US)+AppleWebKit/534.16+(KHTML,+like+Gecko)+Chrome/10.0.648.133+Safari/534.16 - - hostwebsite.local 200 0 0 1287 485 23

新信息

问题现已解决,我已在下面列出了答案。

2 个答案:

答案 0 :(得分:2)

导致侦听服务器侦听http://hostwebsite.local/Services/EchoService.svc/Services/EchoService.svc

时出现配置错误

而不是

http://hostwebsite.local/Services/EchoService.svc

我清除了服务器端点中的地址/Services/EchoService.svc

<services>
    <service name="API.Proxy.EchoProxy" behaviorConfiguration="MyServiceTypeBehaviors">
        <endpoint address="[CLEARED]" binding="basicHttpBinding" contract="API.Contract.IEcho" bindingConfiguration="NewBinding" />

客户端配置已经有了地址

<client>
    <endpoint address="http://hostwebsite.local/Services/EchoService.svc" binding="basicHttpBinding" bindingConfiguration="SecureBinding" contract="API.Contract.IEcho" name="SecureEndpoint">

答案 1 :(得分:1)

注意你的一个请求......是POST而另一个是GET ......也许这就是问题!