ASP.NET MVC на IIS 7.5 - PullRequest
       115

ASP.NET MVC на IIS 7.5

333 голосов
/ 04 марта 2010

Я использую Windows 7 Ultimate (64-разрядную версию) с использованием Visual Studio 2010 RC. Недавно я решил, чтобы VS запускал / отлаживал мои приложения на IIS, а не на dev-сервере, который поставляется вместе с ним.

Однако каждый раз, когда я пытаюсь запустить приложение MVC, я получаю следующую ошибку:

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

Информация об ошибке

Модуль DirectoryListingModule

Уведомление ExecuteRequestHandler

Ошибка статического обработчика

Код 0x00000000 Запрошено

URL http://localhost:80/mySite/

Физические Путь C: \ myProject \ mySite \

Метод входа в систему Анонимный вход в систему

Аноним пользователя

Я поместил файл default.aspx в каталог и получил следующую ошибку:

Ошибка HTTP 500.21 - внутренний сервер Обработчик ошибок «PageHandlerFactory-Integrated» имеет плохой модуль "ManagedPipelineHandler" в его список модулей

Есть ли какие-то другие шаги, которые я забыл предпринять, чтобы заставить это работать?

Примечания. Я установил IIS 7.5 после установки VS 2010 RC. Я использовал встроенную кнопку «Создать виртуальный каталог» на вкладке «Веб» в «Свойствах» проекта MVC в Visual Studio 2010. Я убедился, что приложение использует пул приложений ASP.NET 4.

Ниже приведены установленные функции IIS.

alt text

Ответы [ 28 ]

2 голосов
/ 07 августа 2013

Обратите внимание, что для пользователей Windows 8 вам необходимо добавить / удалить компоненты Windows и удалить версию перезагрузки .net, а затем переустановить, чтобы зарегистрировать ее в IIS. Я предполагаю, что это произойдет, если вы получите .net 4.5 от visual studio и впоследствии установите IIS.

2 голосов
/ 24 июля 2013

Еще одна причина, по которой это может произойти - ваши RouteConfig.cs или WebApiConfig.cs недействительны.

В моем случае маршрут был определен как таковой (обратите внимание на круглые скобки вместо фигурных скобок):

...
routeTemplate: "api/(something}"
...
1 голос
/ 07 августа 2015

Это сработало для меня и могло бы пригодиться другому.

Возможно, все необходимые компоненты отсутствуют или / и не все зарегистрированы правильно. Чтобы решить эту проблему, попробуйте снять все параметры в Панели управления -> Включить или отключить функции Windows -> Информационные службы Интернета -> Службы всемирной паутины -> Функции разработки приложений, снять все параметры и еще раз проверить все, затем сбросить IIS и проверьте, решена ли проблема.

enter image description here

1 голос
/ 29 апреля 2014

Если вы работаете с IIS 8.5 в Windows 8 или Server 2012, вы можете обнаружить, что mvc 4/5 (.net 4.5) не работает в виртуальном каталоге. Если вы создадите локальную запись хоста в файле хоста, чтобы он указывал на ваш локальный компьютер, а затем укажите новый локальный веб-сайт IIS на эту папку (с соответствующей записью заголовка хоста), вы обнаружите, что она работает.

1 голос
/ 20 июня 2011

Чтобы решить эту проблему, не прибегая к 32-битному режиму, вам придется обновить исходный код этого проекта

public static void RegisterUrlRoutesFromAttributes(RouteCollection routes)
{
    // Enumerate assembly for UrlRoute attributes.
    List<MapRouteParams> routeParams = new List<MapRouteParams>();
    AppDomain.CurrentDomain.GetAssemblies()
        .ToList()
        .ForEach(assembly => routeParams.AddRange(GetRouteParamsFromAttributes(assembly)));

Я поднял эту проблему в качестве обсуждения на доске обсуждений в проекте облачного кодекса IT.

http://itcloud.codeplex.com/discussions/262000

0 голосов
/ 30 ноября 2016

В моем случае .NET CRL Version в prppertires пула приложений был установлен как Нет управляемого кода (не знаю почему). Установка .NET CRL версии v4.0.30319 решила проблему.

0 голосов
/ 01 сентября 2016

Для меня решение было добавить пакет NuGet Microsoft.AspNet.WebPages (плюс его зависимости Razor и Infrastructure) в мой веб-проект.

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

0 голосов
/ 15 апреля 2015

Я создал новое пространство имен (и, следовательно, папку), идентичное маршруту к контроллеру (например, MvcApp/Test/SomeClasses.cs и MvcApp/Controllers/TestController.cs). Это также привело к 403,14!

...