Список каталогов запрещен в приложении ASP.Net MVC 4 в виртуальном каталоге IIS 6

Я пытаюсь заставить ASP.Net MVC 4 работать на IIS6, и я запускаюсь в всегда забавную версию отказа списка каталогов.

Прежде чем вы начнете публиковать сообщения о неограниченном количестве URL-адресов и о том, как мне нужно прочитать сообщение в блоге Haacked.. У меня есть:) Итак, с этой целью здесь находится настройка:

Я создал новый веб-сайт и настроил его на использование ASP.Net 4.0. Я должен был сделать это, потому что существующий веб-сайт по умолчанию настроен для ASP.Net 2.0, и это нарушает URL-адреса без расширения. На новом веб-сайте я создал виртуальный каталог с помощью Read/Write/Log Vists/Index, который выбрал эти параметры ресурсов и выполнил разрешения, установленные для сценариев.

Я проверил, что ASP.Net v4.0.30319 находится в списке расширений веб-служб и разрешен. Я также подтвердил правильность настройки .axd в конфигурации отображения виртуальных каталогов.

Я полностью и полностью потрясен.

Как побочный кусочек мелочей, я работал с веб-сайтом, указывая прямо на мое веб-приложение ASP.Net 4, но нам нужно, чтобы это было сделано через виртуальный каталог. Тот факт, что у меня была эта работа, должна означать, что параметр реестра EnableExtensionlessUrl не является проблемой.

Ответ 1

У меня возникла такая же проблема, и она очистилась, когда я добавил "сопоставление приложений подстановочных знаков" (.*) на aspnet_isapi.dll с помощью непроверенной опции "Проверить, существует ли файл"

Приложение → Свойства → Каталог → Конфигурация → Сопоставление → Вставить → Обзор C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll → Снимите флажок "Проверить, существует ли файл" → Ok

Теперь сайт открывается нормально, без каких-либо проблем.

Ответ 2

Аналогичная проблема: мы установили MVC4 в ящик IIS6, настроили все, как описано, и получили такую ​​же ошибку:

Directory Listing Denied
This Virtual Directory does not allow contents to be listed.

Для нас окончательное решение заключалось в том, чтобы добавить UrlRoutingModule в web.config:

  <add name="UrlRoutingModule"
       type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

Это имеет смысл, но я не знаю, почему нам нужно было явно добавить его, а другие - нет. (Мы работаем в каталоге под Sharepoint, возможно, связаны...)