У мене є невеликий тестовий скрипт ASP.NET, який відкриває підключення до бази даних SQL Server на іншій машині в домені. Це працює не у всіх випадках.
Налаштування:
IIS 7.5 під W2K8R2 намагається підключитися до віддаленого екземпляра SQL Server 2008 R2. Усі машини в одному домені.
Використовуючи ApplicationPoolIdentity для веб-сайту, він не може підключитися до SQL Server із наступним:
Помилка входу для користувача "NT AUTHORITY \ ANONYMOUS LOGON". Опис: Неопрацьоване виняток сталося під час виконання поточного веб-запиту. Перегляньте стежку стека, щоб отримати докладнішу інформацію про помилку та місце її виникнення в коді.
Деталі винятку: System.Data.SqlClient.SqlException: Не вдалося ввійти для користувача "NT AUTHORITY \ ANONYMOUS LOGON".
Однак якщо я переключую ідентифікацію моделі процесу на мережеву службу або мій обліковий запис домену, підключення до бази даних вдале.
Я надав доступ \ $ у SQL Server.
Я не роблю ніякої автентифікації на веб-сайті, це просто простий скрипт, щоб відкрити підключення до бази даних, щоб переконатися, що вона працює.
Увімкнено функцію анонімної автентифікації та налаштовано на використання ідентичності пулу додатків.
Як зробити цю роботу? Чому ApplicationPoolIdentity намагається використовувати ANONYMOUS LOGON? А ще краще, як змусити її припинити використання входу Anonymous?