Ошибка 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 (оба файла ранее существовали на одном уровне).
я столкнулся с подобным сам раньше по 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>
в моем случае, у меня было несколько проектов, но я не определила стартовый проект. Таким образом, эта ошибка порождала. После определения проекта запуска решена проблема.
если проект 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
.
конкретные шаги, чтобы исправить это:
- открыть Диспетчер IIS (Пуск > Выполнить > inetmgr);
- в Диспетчере IIS на левой панели разверните узел сайты;
- в разделе сайты щелкните левой кнопкой мыши ASP.NET сайт MVC;
- в правой области выберите основные параметры...;
- в диалоговом окне изменить сайт измените
Physical path
в каталог проекта. - нажмите OK.
проверить это:
эта проблема возникает, потому что веб-узел не имеет функцию просмотра каталогов включен, и документ по умолчанию не настроен. Чтобы устранить эту проблему, используйте один из следующих методов:
- метод 1: Включите функцию просмотра каталогов в IIS (рекомендуется)
- Метод 2: Добавить документ по умолчанию Метод 3: включить каталог
- Метод 3: включить функцию просмотра каталогов в IIS Express
в моем случае индекс.файл 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. Возможно, есть какой-то неправильный перевод выше, потому что моя ОС не является английской версией.