Ошибка "NT AUTHORITY\ANONYMOUS LOGON" в Windows 7 (ASP.NET и веб-служба)
У меня есть веб-приложение asp.net, которое отлично работает на компьютере под управлением Windows XP в домене. Я портирую его на отдельную машину с Windows 7. Приложение использует веб-сервис, который выполняет вызов к серверу sql. Веб-сервер (IIS 7.5) и SQL Server находятся на одном и том же автономном компьютере.
Я включил проверку подлинности Windows для веб-сайта и веб-службы. Веб-служба использует строку подключения доверенного соединения. Учетные данные веб-службы используют System.Net.CredentialCache.DefaultCredentials. Я заметил, что имя пользователя, пароль и имя домена остаются пустыми после звонка! Веб-сервис и веб-сайт используют "классический.NET AppPool" с идентификатором NetworkServices.
Я получаю исключение "NT AUTHORITY\ANONYMOUS LOGON" при вызове базы данных в веб-сервисе. Я предполагаю, что это связано с пустыми учетными данными.
Я ожидаю, что пользователь ASPNET будет маркером безопасности для базы данных. Почему этого не происходит? Я пропустил настройку? (Обычно это происходит, когда sql-сервер и веб-сервер находятся на двух разных машинах в домене, делегирование и двойное переключение, но в моем случае все находится на устройстве dev)
1 ответ
Пользователь "ASPNET" последний раз был замечен в Windows XP, он не существует в Vista или Windows 7, потому что IIS напрямую размещает ASP.NET и просто использует сетевую службу в качестве удостоверения пула.
Проверьте свои настройки подражания тоже. Для простоты убедитесь, что параметр "Анонимная проверка подлинности" в IIS связан с удостоверением пула приложений и что для базовых параметров сайта также установлено значение "Подключиться как..." удостоверения пула.
Наконец, добавьте запись входа в SQL Server для сетевой службы (или любой другой идентификатор, под которым работает пул).