В каталоге ASP.Net MVC 4, запущенном в виртуальном каталоге IIS 6, отсутствует список каталогов - PullRequest
11 голосов
/ 08 марта 2012

Я пытаюсь заставить ASP.Net MVC 4 работать на IIS6 и сталкиваюсь с всегда забавной ошибкой "Запрещен список каталогов".

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

Я создал новый веб-сайт и настроил его для использования ASP.Net 4.0. Мне пришлось сделать это, потому что существующий веб-сайт по умолчанию настроен для ASP.Net 2.0, и это нарушает URL-адреса без расширений. На новом веб-сайте я создал виртуальный каталог с параметрами «Чтение / Запись / Журналы / Индексы», выбранными этими ресурсами, и выполнил разрешения, установленные для «Сценарии».

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

Я полностью и полностью озадачен ..

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

Ответы [ 2 ]

22 голосов
/ 27 марта 2012

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

Приложение -> Свойства -> Каталог -> Конфигурация -> Отображения -> Вставить -> Просмотреть C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_isapi.dll -> Снимите флажок «Убедитесь, что файл существует» -> Ok

Теперь сайт открывается без проблем.

2 голосов
/ 15 мая 2013

Аналогичная проблема: мы установили 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, может быть связано ...)

...