IIS статус 200 (браузер) - 404 (Wcf) - PullRequest
1 голос
/ 01 апреля 2011

У меня есть служба WCF, IIS размещен.Он защищен базовой аутентификацией.

Когда я просматриваю браузер, я получаю 401 (nt challenge) и 200 (успешный ответ).Тот же веб-сайт, страница и т. Д. С запросом WCF через консольное приложение, я получаю 401, затем 404. (страница не найдена).

Оба используют одно и то же имя пользователя и пароль, которые являются правильными.Машина просто рабочий стол для разработки.Не в домене.Хост - hostwebsite.local через привязку файла хоста к 127.0.0.1

Вот журналы IIS.Первые две строки - это вызванная ошибка WCF.Последние 2 строки - это успешный вызов браузера.

Единственная реальная разница - это 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 ]

2 голосов
/ 01 апреля 2011

Произошла ошибка конфигурации, в результате которой прослушивающий сервер прослушивал 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 голос
/ 01 апреля 2011

Обратите внимание, что ваш один запрос ... это POST, а другой - GET ... возможно, это проблема!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...