Windows 2012/IIS 8 + ASP.NET MVC Приложение 403.14 (Запрещено) - веб-сервер настроен так, чтобы не отображать содержимое

У меня очень простое приложение MVC 4, которое я пытаюсь развернуть на сервере Windows 2012.

Непоследовательно, при переходе к корню веб-приложения (http://localhost/app), он возвращает 403.14-Forbidden:

Подробная информация об ошибке:

Module:            DirectoryListingModule
Notification:      ExecuteRequestHandler
Handler:           StaticFile
Error Code:        0x00000000
Requested URL:     http://localhost:80/test1/
Physical Path:     c:\apps\test1\
Logon Method:      Negotiate

Веб-приложение:

  • Это очень ванильный шаблон для интранета VS2012 MVC4 - с надписью, чтобы доказать, что все работает.
  • работает в интегрированном пуле приложений v4.0
  • настройка для использования аутентификации Windows
  • пулу приложений назначен пользовательский идентификатор AD (чтобы он мог получить доступ к серверу SQL)
  • удостоверение пула приложений имеет разрешения на чтение в папке c:\apps\test1, в которой он запущен
  • Это приложение MVC4, нацеленное на.NET 4.0 в настоящее время. В приложении MVC4 нет документа по умолчанию (например, default.aspx), так как его не должно быть.
  • Я не хочу включать списки каталогов (так как это не настоящая ошибка).
  • Установлено: роли / веб-сервер (IIS) / разработка приложений / (расширяемость.NET 4.5, инициализация приложений, ASP.NET 4.5, расширения ISAP, фильтры ISAPI, протокол WebSocket)
  • Работает локально на моей машине в IISExpress на Windows 8
  • Настроил в web.config: <modules runAllManagedModulesForAllRequests="true" />
  • предварительно компилируется во время публикации

Когда я изменяю предварительно скомпилированную опцию на false веб-приложение не выходит из строя (по крайней мере, в моем тестировании оно работает стабильно).

Причина, по которой я говорю, что это противоречиво, состоит в том, что я видел, как это работает, затем я опубликовал, и ошибка возвращается. Я не могу найти образец проблемы (и сейчас я не смог заставить его работать снова, вообще).

403 возвращается из локального или удаленного веб-браузера.

У меня возникли проблемы с поиском решения, которое не предназначено для более старых версий Windows (например, предложения переустановить ASP.NET, который не будет работать в Windows 2012).

Я действительно не знаю, что еще попробовать.

3 ответа

Просто заметил "пользовательскую идентификацию AD" там.

  1. убедитесь, что новый пользователь действительно имеет права на чтение пути файловой системы, даже если там ничего нет.
  2. убедитесь, что новый пользователь находится в группе приложений IIS, чтобы он мог общаться с метабазой
  3. Проверьте, настроена ли аутентификация в режиме ядра, в зависимости от этого:
    1. (если так) проверьте, что setspn не имеет дополнительных записей
    2. (если нет) рассмотрите возможность увеличения NTLM над Kerberos в вашем списке согласования аутентификации, чтобы посмотреть, решит ли это проблему.

2012 год достаточно новый, и я не знаю его причуд ошибок, но это довольно хорошие места для начала, когда запрет 403.

У меня та же проблема. Я искал столько времени и делал все инструкции по этой ссылке. Я настроил свое приложение как ваше; но это не работает вообще. Наконец, я обнаружил, что: Когда я выбираю прекомпиляцию во время публикации, я должен установить AssemblyCulture - пустую строку (в файле Properties/AssemblyInfo.cs) Например:

[Assembly: AssemblyCulture("")]

Если я установлю как показано ниже, это не сработает

[сборка: AssemblyCulture("fr-FR")]

У меня была похожая проблема, и мой ответ был таким:

http://technet.microsoft.com/en-us/library/cc731598

У меня было добавление IP-адреса машины, обращающейся к сервису. Я не знал, что это было включено.

Другие вопросы по тегам