ASP.NET MVC на IIS 7.5 - PullRequest
       114

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 ]

4 голосов
/ 31 октября 2011

Я использовал расширение IIS WebDeploy для импорта своих веб-сайтов из IIS6 в IIS7.5, поэтому все параметры IIS были такими же, как и в производственной среде. Перепробовав все представленные здесь решения, ни одно из которых не помогло мне, мне просто пришлось изменить настройку пула приложений для веб-сайта с Classic на Integrated.

4 голосов
/ 28 октября 2011

Другое возможное решение, если вы перемещаетесь по своему global.asax, убедитесь, что разметка указывает на правильный класс MvcApplication. Надеюсь, это спасет кого-то в будущем.

4 голосов
/ 17 июля 2013

Я неожиданно столкнулся с той же проблемой 404.14. Наконец, проблема была исправлена ​​снятием флажка «прекомпилировать во время публикации» в настройках профиля публикации.

4 голосов
/ 06 мая 2015

Вы можете решить эту ошибку, запустив cmd от имени администратора чем enter image description here

Сделайте так же, как на картинке для Windows 32 бит

Просто вносите изменения в 64-битной версии как framework64, а не только framework Тогда зайдите на iis и обновите сайт
Если у вас все еще есть ошибка, внесите изменения в пул приложений

4 голосов
/ 21 октября 2013

В моем случае ASP.NET 4.5 не установлен на сервере, поэтому установка ASP.NET 4.5 устранила проблему.

4 голосов
/ 23 сентября 2013

Я изменил свой маршрут по умолчанию в одной точке с:

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

На:

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

Из-за которого произошла ваша ошибка.Рад, что кто-то упомянул о маршрутизации, потому что я, вероятно, был бы на этом навсегда.

3 голосов
/ 29 ноября 2017

Интерфейс немного отличается в новых версиях Windows Server. Здесь вы должны включить ASP.Net, чтобы он работал на IIS

Fix IIS & Asp.net

3 голосов
/ 13 февраля 2013

У меня была другая проблема, которая привела к этой проблеме.

  • Я убедился, что в пуле приложений запущен .net 4 в интегрированном режиме.
  • Я запустил aspnet_regiis.exe -i
  • Я проверил, правильно ли настроены права доступа к папке для учетной записи, в которой запущен мой пул приложений

Ничего из этого не сработало. Оказалось, что в моем web.config под system.webserver> модулями у меня было следующее:

<remove name="WindowsAuthentication" />

Очевидно, это убрало модуль аутентификации Windows, который, казалось, каким-то образом сбил все с ног.

Надеюсь, это кому-нибудь поможет, так как это стоило мне большую часть вечера!

2 голосов
/ 29 июня 2015

Как это ни странно, переустановка IIS сработала для меня, с помощью следующей команды, запущенной из папки версии .net:

aspnet_regiis.exe /i

enter image description here

Когда я впервые запустил эту команду, я начал получать ошибку HTTP 403.14. Но как только я снова запустил команду, это решило проблему.

Obs : я также удалил перенаправление HTTP с функций сервера на экране управления сервером перед повторной установкой IIS. Может быть, это также повлияло на решение проблемы, но я не уверен. Итак, если переустановка IIS все еще не работает, попробуйте удалить HTTP Redirect и попробуйте снова. Надеюсь, это может сработать и для вас.

2 голосов
/ 27 сентября 2011

Добавление другого решения для этой проблемы.

в моем файле Global.asax.cs я отключил попытки использования php-файлов конвейером MVC с использованием следующего:

routes.IgnoreRoute( "{*php}" );

Я делал это ранее в проекте MVC2, и он работал нормально, но в моем приложении MVC 3 возникла проблема, о которой сообщалось выше.

...