Я постараюсь сделать этот вопрос как можно более кратким, поскольку эту проблему немного сложно объяснить для меня. Пожалуйста, задавайте любые вопросы, если что-то осталось неясным. Итак, поехали,
Это сообщение об ошибке, которое я получаю некоторое время, работая над этим,
«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, он работает, но когда происходит переход между службами с какой-либо другой учетной записью домена (например, моей учетной записью пула приложений), происходит сбой при ошибка выше.
Если кто-либо видел такое поведение, поделитесь информацией.