Ошибка HTTP 403.14 - Запрещено - веб-сервер настроен так, чтобы не отображать содержимое этого каталога


146

Я только что создал новый пустой веб-сайт в Visual Studio 2012 и нажал на кнопку «Выполнить» (т.е. просмотр в браузере), и я получаю эту ошибку:

Ошибка HTTP 403.14 - Запрещено Веб-сервер настроен так, чтобы не перечислять содержимое этого каталога.

Я вошел в IIS и нажал на просмотр каталогов, а затем убедился, что просмотр каталогов был включен, но я все еще получаю эту ошибку. Я не могу понять это?

Проект веб-сайта, который я только что создал, не указан на веб-сайтах по умолчанию в IIS Manager, что, на мой взгляд, было странно.

Как мне избавиться от этой ошибки?


Проект настроен на использование IIS? Или IIS Express? Или Казини?
Крис Вандермоттен,

Вы запускали или просматривали в браузере ? 2 разные вещи. Если это проект MVC, то вы, возможно, пытались просмотреть viewв браузере?
Кристиандев,

Убедитесь, что вы включили ASP.NET 4.5 или ASP.NET из Панели управления \ Все элементы панели управления \ Программы и компоненты \ Включение или отключение компонентов Windows \ Службы Internet Information Services \ World Wide Web Services \ Функции разработки приложений \ ASP.NET 4.5 или ASP.NET 3.5 в зависимости от настроек пула приложений.
Бимал Дас

Ответы:


142

сохраните это в своем файле веб-конфигурации, затем переименуйте add value = "yourwebformname.aspx"

<system.webServer>
    <defaultDocument>
       <files>
          <add value="insertion.aspx" />
       </files>
    </defaultDocument>
    <directoryBrowse enabled="false" />
</system.webServer>

еще

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>

1
Я работал над этим проектом несколько месяцев - никогда не нуждался в этой линии. Я опубликовал сайт сегодня, и он больше не будет работать в режиме отладки !!! Добавленная эта строка заставляет это работать снова! Я проверил SVN - определенно никогда не нуждался в этом раньше. WTF !? В любом случае, спасибо, что потерял только час :)
Percy

Я получаю HTTP-ошибку 500.22 - Внутренняя ошибка сервера.
Брайан Лабушанье

40

Эта проблема возникает из-за того, что на веб-сайте не Directory Browsingвключена эта функция, а документ по умолчанию не настроен. Чтобы решить эту проблему, используйте один из следующих методов. Чтобы решить эту проблему, я выполнил шаги, описанные в способе 1, как указано на странице поддержки MS, и рекомендованный метод.

Способ 1. Включите функцию просмотра каталогов в IIS (рекомендуется)

  1. Запустите IIS Manager. Для этого нажмите кнопку Пуск, выберите пункт Выполнить, введите inetmgr.exe и нажмите кнопку ОК.

  2. В диспетчере IIS разверните имя сервера, разверните веб-сайты, а затем щелкните веб-сайт, который вы хотите изменить.

  3. В представлении «Функции» дважды щелкните «Просмотр каталога».

  4. На панели «Действия» нажмите «Включить».

Если это не сработает, возможно, у вас возникла другая проблема, чем просто проблема со списком каталогов. Так что следуйте ниже шаг,

Способ 2: добавить документ по умолчанию

Чтобы решить эту проблему, выполните следующие действия.

  • Запустите IIS Manager. Для этого нажмите кнопку Пуск, выберите пункт Выполнить, введите inetmgr.exe и нажмите кнопку ОК.
  • В диспетчере IIS разверните имя сервера, разверните веб-сайты, а затем щелкните веб-сайт, который вы хотите изменить.
  • В представлении «Функции» дважды щелкните «Документ по умолчанию».
  • На панели «Действия» нажмите «Включить».
  • В поле Имя файла введите имя документа по умолчанию и нажмите кнопку ОК.

Способ 3: включить функцию просмотра каталогов в IIS Express

Примечание. Этот метод предназначен для веб-разработчиков, которые сталкиваются с проблемой при использовании IIS Express.

Следуй этим шагам:

  • Откройте командную строку и перейдите в папку IIS Express на вашем компьютере. Например, перейдите в следующую папку в командной строке: C:\Program Files\IIS Express

  • Введите следующую команду и нажмите клавишу ВВОД:

    appcmd set config /section:system.webServer/directoryBrowse /enabled:true


Это должен быть принят ответ. Метод 2 работал для меня. Сначала я создал пустой веб-сайт, а затем добавил веб-форму с именем «WebForm1.aspx». Следовательно, мне нужно добавить это имя в список документов по умолчанию. Спасибо.
Новато

31

Перейдите в cmd и введите это:

для ОС x64:% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir

для ОС x32:% windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir

Это установит правильную версию, и IIS поймет, просмотр каталога MVC


% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir это сработало для меня для моей 64-битной системы и приложения MVC
Amar Gadekar

Команда для x64 также
Cavid

24

Причин может быть несколько. Тот, который работал для меня на IIS 8.5, был следующим

меры

  1. Введите «включить или отключить функции Windows» в поиске.
  2. Нажмите «Добавить роли и функции» в диспетчере сервера.
  3. В мастере прокрутите вниз до веб-сервера и выберите: Веб-сервер -> Разработка приложений. Выберите все, кроме CGI из списка, как показано на снимке экрана

введите описание изображения здесь

  1. Наконец нажмите «Далее» и установите.
  2. Перезагрузите IIS

Ваш сайт может начать работать.


18

Установите стартовую страницу.

Когда у меня возникла эта проблема, я вошел в обозреватель решений, сначала нашел страницу, которую хотел увидеть (в моем случае «Home.aspx), щелкнул правой кнопкой мыши по ней и выбрал« Сделать стартовой страницей ». Это устранило мою проблему (которая звучит очень похоже на ваш). Это было в Visual Studio 2012 Professional, и я запустил его в Firefox.


17

Попробуйте добавить следующие настройки в web.configфайл.

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

2
Ошибка HTTP 500.22 - внутренняя ошибка сервера
Bryan Labuschagne,

Моя проблема решена, после добавления этого кода в файл webconfig, спасибо.
Ядавр

17

Я просто вставил этот фрагмент кода в файл web.config, и ошибка была устранена.

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>

10

У меня есть одно быстрое средство от этого. На самом деле я получил эту ошибку, потому что я не установил свою веб-страницу в качестве начальной страницы. Когда я сделал мою веб-страницу (html / aspx) как заданную стартовую страницу, как показано ниже, я исправил эту ошибку.введите описание изображения здесь

Я не знаю, поможет ли это решение другим.


8

Пустой шаблон веб-сайта создает веб-сайт ASP.NET, который содержит файл Web.config, но не содержит других файлов. Означает, что у вас нет страницы по умолчанию для отображения при просмотре или запуске.

Это сообщение об ошибке просто означает, что вы не настроили и не сконфигурировали документ по умолчанию в своей IIS.

Как только это настроено, сообщение об ошибке исчезнет.


Я добавил главную страницу на пустой веб-сайт, и когда я нажал «Выполнить без кода», я все еще получил ошибку. Я не уверен, что мне нужно сделать, чтобы запустить его?
Aindriu

у вас есть страница по умолчанию на вашем сайте, если нет, то создайте и установите страницу по умолчанию, как показано в этой ссылке iis.net/learn/web-hosting/web-server-for-shared-hosting/…
Sain Pradeep

Нет, у меня не было страницы по умолчанию на пустом сайте. Я следую примеру в книге C #. Я добавил страницу по умолчанию, и она нормально загружалась в веб-браузере. Но в примере использовались только главные страницы. Я не понимаю, почему это не работает. Это очень простой пример.
Aindriu

8

На сайте в IIS:

  1. выберите «Дополнительные настройки»
  2. Затем для пула приложений выберите «ASP.NET v4.0»

изображение например


2
Это не отвечает на вопрос ОП. Изменение пула приложений, используемого сайтом в IIS, не влияет на настройку сайта для отображения содержимого каталога (или его отсутствия). Это связано с конфигурацией в файле web.config.
JNYRanger

8

Панель управления> Включение или отключение функций Windows

Информационные службы Интернета> Службы всемирной паутины> Функции разработки приложений

Включить две опции

.NET Extensibility 3.5
.ASP.NET 3.5

Под введите описание изображения здесь



5

В моем случае я получил ту же ошибку после создания пустого проекта Web Api.

Я решил это, отредактировав RouteConfig.cs в папке App_Start :)

Я заменил строку чтения кода: -

defaults: new { action = "Index", id = UrlParameter.Optional }

со следующим: -

defaults: new { controller = "Index", action = "Index", id = UrlParameter.Optional }

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

Ну, все приведенные выше ответы не решили мой случай (как я хотел), например

  • Включение просмотра каталогов из web.config только что перечислило все файлы и папки в моем проекте так же, как и php, если у вас нет индексного файла
  • Установка defaultDocument также не работает для меня, так или иначе все еще получил ошибку HTTP 403.14 (до сих пор не знаю, почему)

Если кто-то может быть в подобных обстоятельствах, как у меня, то попробуйте.


Это был большой ответ, который мне был нужен. Однако имя контроллера должно совпадать с тем, что было создано для имени контроллера приложения MVC (если вы вызываете свой контроллер IndexController, тогда оно будет работать), поэтому имя действия по умолчанию на контроллере должно быть Index, а затем все это будет связано - предложения использование просмотра каталогов НЕ является хорошей идеей, на мой взгляд, так как позволяет любому полностью перемещаться по содержимому вашего сайта.
Марк У. Митчелл

4

Я получил эту ошибку, и изменение режима управляемого трубопровода пула приложений на «Интегрированный» решает проблему.

Источник: Запуск приложения .NET 4.6 MVC на IIS 8.5 (Windows Server 2012).


Этот пост на самом деле не отвечает на этот вопрос, так как это нечто наоборот.
rickvdbosch

4

В моем случае я столкнулся с этой ошибкой, потому что мое веб-приложение было .NET v4, а пул приложений был настроен для .NET v2.

Двойной щелчок по пулу приложений вызывает всплывающее окно, где мы можем выбрать нужную версию .NET Framework.


4

РЕШЕНО
Поиск "Windows Feature"при запуске ->
Нажмите "turn features on and off"->
Разверните "Internet Information Services"и
проверьте все программы в каждой подпапке и
нажмите «ОК».
Это решит все ваши проблемы. введите описание изображения здесь


3

Я решил мою проблему с паром это шаги =>

  1. Открыть IIS Manager
  2. Нажмите на приложение
  3. Нажмите Просмотр каталога
  4. Нажмите Открыть функцию (справа вы увидите под Действия)
  5. Нажмите Включить

2

Это может быть вызвано записью bum applicationhost.config.

Остановите IIS Express, если он запущен (щелкните правой кнопкой мыши на голубом значке прокрутки в системном трее Windows; выход).

Перейдите в Свойства вашего проекта> Веб и проверьте правильность URL проекта. В случае URL-адреса https убедитесь, что он содержит номер порта в допустимом диапазоне. Правильный URL может быть: https://localhost:44300/. Теперь нажмите кнопку «Создать виртуальный каталог» рядом с URL. Это добавляет новую запись в applicationhost.config.

Запустите проект снова и, надеюсь, вы больше не получите ошибку.


2

Я уверен, что спустя годы у вас, вероятно, уже есть ответ. Но в случае, если кто-то еще ищет ответ в будущем.

Для моей проблемы мне не нужно было ничего делать с web.config. Я не думал, что мне это понадобится, поскольку это работало ранее.

Убедитесь, что ни одна папка не называется так же, как ваша страница, у меня была папка с именем blog и страница с именем blog.aspx, она пыталась загрузить папку, я заметила это в ссылке, изменила папку на blogContent Теперь он загружается нормально.

Я публикую здесь копию, так как вы первый в поисковом запросе.


2

Проблема может быть связана с запуском проекта из Visual Studio в IIS, когда он находится на неправильной открытой вкладке в Visual Studio, поэтому решение заключается в открытии правой вкладки (веб-формы, которую вы хотите протестировать в браузере) или в соответствии с рекомендациями, приведенными в другие ответы, щелкните правой кнопкой мыши веб-форму, которую вы хотите установить в качестве домашней страницы, затем нажмите «Сделать стартовой страницей».



1

щелкните правой кнопкой мыши свой проект в обозревателе решений, а затем нажмите кнопку Добавить новый элемент, добавьте страницу HTML и назовите ее как index.HTML после того, как все перезапустите приложение


1

В моем случае

В Application Pool я установил версию .NetFrameWork на V4.0 и решил проблему ....


1

Вам следует установить часть разработки IIS на вашем сервере, как вы можете видеть на следующем рисунке:введите описание изображения здесь


0

Это может произойти по ряду причин. Если вы пробовали все вышеперечисленное и по-прежнему получаете ту же ошибку, у меня есть еще одно решение.

Другая причина, по которой это может произойти, заключается в том, что

  1. Если у вас есть та же база кода, которая была запущена до запуска свежего решения, вы можете столкнуться с этой ошибкой. Причина в том, что IIS Express пытается работать на том же порту, что и для старого решения, для которого зарегистрирован физический путь для начального URL-адреса приложения.
  2. Поскольку IIS не может определить физический путь для запуска решения, он может не найти все библиотеки, необходимые для запуска приложения.

Решения:

  1. Попробуйте изменить порт приложения по умолчанию. Например. Используйте http://localhost/вместоhttp://localhost:25836/

  2. Попробуйте перейти на любой другой порт, если вы уже использовали порт по умолчанию для предыдущего приложения. пример: http://localhost:25364/вместоhttp://localhost/

Это позволит IIS / IIS Express указывать путь к корзине по умолчанию для нового приложения, которое вы пытаетесь запустить, и которое будет иметь все необходимые библиотеки для запуска приложения.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.