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

146

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

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

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

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

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

Aindriu
источник
Проект настроен на использование 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.

joshmcode
источник
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

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

Хакан Фистик
источник
6

проблема

Ошибка: 403.13 при запуске веб-сайта ASP.Net WebForms из Visual Studio.

Решение

Доступ к корню запрещен: http: // localhost: 51365

Перейдите на страницу входа или любую существующую страницу, и она будет работать:

HTTP: // локальный: 51365 / Login.aspx

Джереми Томпсон
источник
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 (до сих пор не знаю, почему)

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

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

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

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

Evandro
источник
Этот пост на самом деле не отвечает на этот вопрос, так как это нечто наоборот.
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

В моем случае я пропустил Microsoft.Owin.Host.SystemWebнюгет.

pootzko
источник
1

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

user1324491
источник
1

В моем случае

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

ashkufaraz
источник
1

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

Амир Парси
источник
0

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

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

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

Решения:

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

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

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

Кришна
источник