Невозможно получить аутентификацию службы WCF, работающую с IIS 6.0 - PullRequest
0 голосов
/ 16 января 2012

Я постараюсь сделать этот вопрос как можно более кратким, поскольку эту проблему немного сложно объяснить для меня. Пожалуйста, задавайте любые вопросы, если что-то осталось неясным. Итак, поехали,

Это сообщение об ошибке, которое я получаю некоторое время, работая над этим, «HTTP-запрос не авторизован с помощью схемы аутентификации клиента Ntlm. Заголовок аутентификации, полученный от сервера, был« Negotiate, NTLM ». Удаленный сервер возвратил ошибку: (401) Unathorized»

У меня есть два окна Windows, Box1 и Box2. У меня есть 2 службы WCF (ServiceA и ServiceB), размещенные в IIS 6 на каждой из них. Функционально ServiceA общается только с БД. ServiceB разговаривает с ServiceA и получает результаты. Обе службы имеют анонимный доступ и встроенную проверку подлинности Windows. ServiceA работает в пуле приложений ServiceAPool, а ServiceB - в ServiceBPool. Каждый из этих пулов приложений настроил личность пользователя домена. Эти пулы приложений одинаковы для Box1 и Box2.

Во-первых, мое клиентское приложение (просто небольшое консольное приложение) вызывает ServiceA на Box1 с моими учетными данными Windows. Это работает.

Во-вторых, мое клиентское приложение вызывает ServiceB на Box1 с моими учетными данными Windows. Этот ServiceB вызывает ServiceA внутренне с пользователем домена (идентификатор пула приложений). Он работает.

Второй пункт, который я упомянул выше, не работает на Box2, он дает вышеуказанную ошибку. Просто чтобы прояснить, сервисный код, включая файл web.config и т. Д., Одинаков для обоих блоков Пользователь домена для пула приложений один и тот же. Оба поля находятся в одном домене.

Я заметил (вероятно), что на Box2, когда я вызываю ServiceA с моими учетными данными Windows, он работает, но когда происходит переход между службами с какой-либо другой учетной записью домена (например, моей учетной записью пула приложений), происходит сбой при ошибка выше.

Если кто-либо видел такое поведение, поделитесь информацией.

1 Ответ

1 голос
/ 20 января 2012

Я хотел бы опубликовать ответ на свой вопрос. Это оказалось чертовым обновлением ключа реестра, чтобы аутентификация работала нормально. В основном речь шла об отключении значения «DisableLoopbackCheck». Более подробную информацию можно найти на

http://blogs.msdn.com/b/distributedservices/archive/2009/11/10/wcf-calling-wcf-service-hosted-in-iis-on-the-same-machine-as-client-throws-an-authentication-error.aspx

http://support.microsoft.com/default.aspx?scid=kb;EN-US;926642

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