2016-08-07 10 views
0

У меня есть интересная проблема с IIS 8. Я могу запустить приложение, просто найти. Однако после запуска SQL-запроса я получаю страшный «Ошибка входа в систему для пользователя» NT AUTHORITY \ ANONYMOUS LOGON ».Приложение работает в VS iis express, но не в IIS 8

Настоящий кикер для всего этого заключается в том, что при работе в IIS Express с Visual Studio 2013 он отлично работает.

IIS Authentication Settings

Web.Config:

<system.web> 
    <authentication mode="Windows" /> 
    <identity impersonate="true" /> 
    <authorization> 
     <deny users="?" /> 
    </authorization> 
</system.web> 

Любое/Все помощь ценится!

+0

Lex, Я прочитал ваш пост в блоге, спасибо за информацию. Однако я изменил идентификатор appPool на все возможные варианты локального обслуживания, локальная система, сетевой сервис и идентификатор пула приложений не работают. Однако, когда я устанавливаю идентификатор пула в свою учетную запись под пользовательской учетной записью, он отлично работает. Что мне не хватает? –

+0

Есть пользователи домена, которые имеют логины на сервере sql. Я хочу, чтобы они использовали свои учетные данные домена при загрузке страницы, приложение затем использовало эти учетные данные для подключения к серверу sql. –

+0

олицетворение - это только первый шаг. Если у вас не настроено делегирование Kerberos (настройка AD), все равно ошибка может произойти. –

ответ

1

Убедитесь, что учетная запись, использующая пул приложений в IIS, имеет доступ к SQL-серверу. Если это не сработает, попробуйте изменить учетную запись, в которой работает пул приложений, например NetworkService или LocalService, и посмотреть, не имеет ли это никакого эффекта.

Также попробуйте изменить некоторые другие настройки пула приложений в диалоговом окне «Дополнительные настройки ...», например, режим управляемого конвейера и включить 32-разрядные приложения.

+0

До сих пор мне удалось получить правильную загрузку страницы, когда я изменил идентификатор пула приложений на пользовательскую учетную запись и отключил олицетворение asp.net. Однако я хочу использовать учетные данные, которые пользователь вводит при загрузке страницы. Я хотел также добавить, что это веб-приложение является только интрасети. –

0

Спасибо всем за помощь.

Что случилось, так это то, что мы просто использовали локальную учетную запись sql.

Мы собираемся использовать AD, чтобы контролировать, кто имеет доступ к странице.

Использование опции <deny roles="DOMAIN\Domain Users"/>

в веб-файле конфигурации.