Ошибка HTTP 403.14-запрещено веб-сервер настроен не перечислять содержимое

Я загрузил музыкальный магазин MVC ASP.NET приложение MVC в местоположении C:UsersDEVESHDesktopProjectsMvcMusicStore-v3.0MvcMusicStore-CompletedMvcMusicStore и добавил сайт на IIS в том же месте. Я также дал разрешение на IIS_IUSRS, но когда я запускаю localhost, я получаю ошибку:

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

я погуглил,но не в состоянии исправить.Может кто-нибудь сказать мне, где я делаю неправильно?

17 ответов


Я столкнулся с этой ошибкой, потому что у меня была неправильная версия .NET (v2.0 вместо v4.0) настроен в пуле приложений веб-сайта. Я исправил это таким образом на Windows Server 2008 R2 и IIS 7. Я уверен, что инструкции применяются к Windows Server 2012 и IIS 8, а также:

  • нажмите клавиши Windows+R, чтобы открыть диалоговое окно Выполнить, введите inetmgr и нажмите кнопку ОК. Откроется диспетчер IIS.
  • в левом treeview найдите сайты узел и найти Веб-Сайт По Умолчанию узел под ним (или имя сайта, на котором появляется сообщение об ошибке).
  • правой клавишей мыши и выберите управление веб-сайтом -> Дополнительные параметры.... Обратите внимание на имя значения приложение бассейн. Закройте это диалоговое окно.
  • в treeview слева найдите и выберите узел пулы приложений.
  • В списке справа найдите Пул приложений с тем же именем, что и в настройках веб-сайта. Щелкните правой кнопкой мыши и выберите Дополнительные параметры...
  • убедитесь, что версия .NET Framework значение В4.0. Нажмите OK.

Это не применяется, если вы используете более старый сайт, который на самом деле должен иметь .NET v2.0, конечно:)


в моем случае ASP.NET не зарегистрирован на сервере. попробуйте выполнить это в командной строке:

для Windows 32бит

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir

64-битную Windows

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir 

на всякий случай, если кто-то добрался сюда в поисках решения, вот как я его решил. По ошибке я удалил все файлы с моего сервера (каталог bin), но когда я переписал все файлы, я пропустил App_global.асакс.dll и App_global.асакс.скомпилированный файл. Потому что эти файлы отсутствовали IIS давал мне эту ошибку

403 - Forbidden: Access is denied.

Как только я добавил Эти файлы, он начал работать отлично.


Я решил эту проблему, исправив ошибку с помощью моего Global.расположение файл asax. Я скопировал файлы из другого проекта и не смог внедрить глобальный.асакс.cs в рамках глобального.файл asax (оба файла ранее существовали на одном уровне).

Global.asax arrangement


я столкнулся с подобным сам раньше по 2 причинам; 1. MVC не установлен. 2. Модуль маршрутизации url не зарегистрирован (это зависит от машины на моем рабочем месте по причине, которую я не могу полностью объяснить - он не всегда зарегистрирован на системном уровне), попробуйте зарегистрировать его в веб-приложении.config:

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

Edit: я забыл добавить местоположение для iis 7+:

<system.webServer> 

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

у меня только что была та же проблема, но мое исправление состояло в том, что маршрутизация не была настроена в глобальном.асакс.cs файл. Я использую Bootstrapper и Castle Windsor, поэтому для решения этой проблемы я добавил следующий код в Global.асакс.cs:

public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            Bootstrapper.IncludingOnly.Assembly(Assembly.GetAssembly(typeof(WindsorRegistration)))
                .With
                .Windsor()
                .With
                .StartupTasks()
                .Start();
        }
    }

очевидно, если вы используете базовый MVC, вам нужно будет ссылаться на файл RouteConfig в папке AppStart:

public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }

я использовал ASP.NET 4.5 приложение MVC на IIS 7. Мое исправление было установить runallmanagedmodule в true.

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

или если у вас есть другие модули, вы можете добавить их в теге модуль.

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
             <add name="ErrorLogWeb" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
             ...
    </modules>
</system.webServer>

обзор модулей IIS: официальный сайт Microsoft IIS


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


если проект ASP.net проект MVC будет посвящен маршрутизации. В моем случае я изменил значения маршрутизации по умолчанию:

routes.MapRoute(
           "Default",                                              
           "{controller}/{action}/{id}",                           
           new { controller = "Home", action = "Index", id = "" }  
       );

я случайно изменил мой код:

routes.MapRoute(
               "Default",                                              
               "{controller}/{action}/{JobID}",                           
               new { controller = "Home", action = "Index", id = "" }  
           );

Thats я только изменил "id" на "JobId", и маршрут по умолчанию не может быть найден.


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

  • неправильная строка подключения
  • неправильные разрешения каталога IIS
  • исключение, созданное в вашей функции Application_Start ()
  • ошибка инициализации контейнера IOC
  • IIS ASP.NET ошибки регистрации
  • отсутствует DLL в вашем бункере папка
  • etc...

У меня была эта ошибка после создания пустого ASP.Net приложение в Visual Studio. Как только я добавил индекс файла.html к основному решению, он работал. Поэтому в моем случае мне просто нужно было добавить файл в корень папки проекта.


эта ошибка может произойти, когда в Диспетчере IIS ASP.NET сайт MVC указывает на неправильный каталог.

в моем случае я случайно указал сайт на каталог решения вместо каталога дочернего проекта. То есть у меня был сайт Physical path значение

C:\dev\MySolution

вместо

C:\dev\MySolution\MyProject.

конкретные шаги, чтобы исправить это:

  1. открыть Диспетчер IIS (Пуск > Выполнить > inetmgr);
  2. в Диспетчере IIS на левой панели разверните узел сайты;
  3. в разделе сайты щелкните левой кнопкой мыши ASP.NET сайт MVC;
  4. в правой области выберите основные параметры...;
  5. в диалоговом окне изменить сайт измените Physical path в каталог проекта.
  6. нажмите OK.

проверить это:

эта проблема возникает, потому что веб-узел не имеет функцию просмотра каталогов включен, и документ по умолчанию не настроен. Чтобы устранить эту проблему, используйте один из следующих методов:

  • метод 1: Включите функцию просмотра каталогов в IIS (рекомендуется)
  • Метод 2: Добавить документ по умолчанию Метод 3: включить каталог
  • Метод 3: включить функцию просмотра каталогов в IIS Express

ссылка:https://support.microsoft.com/en-us/kb/942062


в моем случае индекс.файл aspx не был создан по умолчанию, и после добавления другой веб-формы я не установил форму в качестве начальной страницы ...После установки страницы в качестве начальной страницы моя проблема будет решена . Щелкните правой кнопкой мыши веб-форму и установите форму в качестве начальной страницы :)


в моем случае мне пришлось отключить "исключить файлы из папки App_Data" в моем профиле публикации, чтобы развернуть папку App_Data с моей XML-документацией (XmlDocument.XML.) Это избавило от 403.14.


в моем случае: 1. в диспетчере IIS в левом дереве щелкните левой кнопкой мыши имя компьютера, в правом диалоговом окне выберите ISAPI и ограничение CGT, в диалоговом окне открыть выберите ASP.NET v4.0.30319 и выберите Включить. Есть два ASP.Net v4.0, один для 32bit, другой для 64 бит. выберите в зависимости от вашего бита ОС. 2. в левом дереве выберите пул приложений, в правом диалоговом окне выберите пул приложений, используемый веб-сайтом. дважды щелкните этот пул, в диалоговом окне открыть элемент .NET framke выберите .net framework V.4.0.30319. и трубы..пункт Выбрать integate. Возможно, есть какой-то неправильный перевод выше, потому что моя ОС не является английской версией.


IUSR permissions использование в папке, если не под inetpub / wwwroot будет решением для некоторых.