У нас есть веб-служба .NET 3.5 (, а не WCF), работающая под IIS. Он должен использовать identity impersonate="true"
и встроенную аутентификацию Windows для аутентификации в стороннем программном обеспечении. Кроме того, он подключается к базе данных SQL Server с использованием аутентификации ADO.NET и SQL Server (с указанием фиксированного идентификатора пользователя и пароля в строке подключения).
Все работало нормально, пока база данных не была перемещена с SQL Server A на SQL Server B. (Не то же самое, что веб-сервер). Затем веб-служба выдает следующее исключение:
Сетевой или
ошибка конкретного экземпляра произошла во время
установление соединения с SQL
Сервер. Сервер не найден или
был недоступен. Убедитесь, что
имя экземпляра правильное и что SQL
Сервер настроен для разрешения удаленного
соединения. (поставщик: именованные трубы
Поставщик, ошибка: 40 - Не удалось открыть
подключение к SQL Server)
Эта ошибка только возникает, если в файле Web.config указано значение олицетворения личности.
Опять же, строка подключения не изменилась и указывает пользователя. Я проверил строку подключения, и она работает как под олицетворенной учетной записью, так и под учетной записью службы (и с удаленного компьютера, и с сервера).
Что нужно изменить, чтобы заставить это работать с подражанием?
EDIT:
Ремус Русану указал нам правильное направление. Дело дошло до Kerberos - SPN не были настроены для нового сервера. См. Также asp.net через встроенную аутентификацию Windows Kerberos для сервера SQL . Спасибо!