У меня есть приложение ASP.NET, которое необходимо подключиться к базе данных служб Analysis Services.Все компоненты находятся на одном компьютере:
- Веб-приложение
- IIS
- Visual Studio 2008
- SQL Server 2008
Моя учетная запись домена (DOMAINNAME \ MyWindowsUsername) является администратором на SQL Server, а также в группе «Администраторы» на локальном компьютере.
Веб-приложение использует проверку подлинности Windows и удостоверение личности impersonate = "true".
Мои параметры проверки подлинности Windows IIS (я также пробовал другие комбинации, но безуспешно ...):
- Расширенная защита: выкл.
- Включить проверку подлинности в режиме ядра:true
- Включает поставщиков: NTLM
Когда я использую веб-приложение на сервере ASP.NET Development Server (развернутом из Visual Studio), тогдавсе работает нормальноМоя учетная запись домена и соответствующие роли базы данных распознаются правильно, и безопасность работает так, как определено в ролях базы данных.
Но при развертывании того же веб-приложения (без каких-либо изменений в коде) в IIS я получаю сообщение об ошибке (в браузере):
На транспортном уровне обнаружена ошибка.Узел преждевременно закрыл соединение.
В SQL Profiler (для случая IIS, когда соединение не удается установить), я получаю только эти два события:
Аудит входа в систему MyWindowsUsername DOMAINNAME
Аудит выхода из системы MyWindowsUsername DOMAINNAME
Кажется, что службы Analysis Services распознают олицетворенную учетную запись, но соединение разрывается.
Я заметил, что ASP.NET Development Server работает под DOMAINNAME \ MyWindowsUsername, а IIS под LocalSystem (настройка по умолчанию).Я пытался поиграть с учетными записями, добавив различные системные / сетевые учетные записи в качестве администраторов служб аналитики (просто чтобы понять логику этого), но также безуспешно (всегда одна и та же ошибка).