500 Ошибка при использовании настраиваемой учетной записи для пула приложений в IIS 7

11

У меня очень простой сайт с только статическими файлами в IIS 7 на Windows Server 2008 SP2.

Когда я пытаюсь получить доступ к любому статическому файлу, я получаю ошибку 500. Если я переименую HTML-файл, чтобы иметь расширение aspx, он работает нормально.

Сайт также работает нормально при использовании встроенного удостоверения для пула приложений. Проблема возникает, когда я переключаюсь на использование настраиваемой учетной записи для пула приложений. Я пытался использовать как локальные, так и доменные учетные записи для запуска пула приложений под.

Я дал полный контроль над этими учетными записями на веб-сайте каталога и файлов.

При включении трассировки появляется следующее сообщение об ошибке:
ModuleName: IIS Web Core
Notification: 2
HttpStatus: 500
HttpReason: внутренняя ошибка сервера
HttpSubStatus: 0
ErrorCode: 2147943746
ConfigExceptionInfo
Notification: AUTHENTICATE_REQUEST
ErrorCode: либо не был предоставлен требуемый уровень олицетворения, либо предоставлен уровень олицетворения, либо является недействительным. (0x80070542)

Мне не повезло с поиском кода ошибки.

домовой
источник

Ответы:

9

Решение проблемы: группа IIS_IUSRS отсутствовала в разделе «выдавать себя за клиента после аутентификации» в локальной политике безопасности.

домовой
источник
Работал на меня, спасибо! Но кроме того, вот как это сделать шаг за шагом для таких манекенов, как я: Пуск> Локальные> Политика безопасности> Локальные политики> Назначение прав пользователя> Олицетворение клиента после аутентификации> Добавить пользователя или группу ...> Выбрать IIS_IUSRS
Wowe
1

Вы можете попытаться изменить пул приложений для этого виртуального приложения и предоставить для этого нового пула личные разрешения.

чтобы дать разрешения для определенного пула просто дайте разрешения для пользователя "IIS APPPOOL \ YOUR_POOL_NAME"

MNK_real
источник
0

В дополнение к ответу Брауни (это правильно, вы должны предоставить это право учетной записи пула приложений); если IIS отправляет вам эту ошибку, когда вы вызываете ее с помощью клиента WCF (+ IIS-аутентификация включена в IIS), это может быть связано с тем, что флаги маркера NTLM, данного IIS, не позволяют ему выдавать себя за вызывающего.

Измените конфигурацию вашего клиента из этого (по умолчанию):

<behavior name="NewBehavior">
  <clientCredentials>
    <windows allowedImpersonationLevel="Identification" />
  </clientCredentials>
</behavior>

К этому:

<behavior name="NewBehavior">
  <clientCredentials>
    <windows allowedImpersonationLevel="Impersonation" />
  </clientCredentials>
</behavior>

Проверьте эту статью для деталей: Олицетворение и Делегирование в WCF

Матье
источник