Я использую 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 у меня есть.
_Layout.cshtml
в_PageLayout.cshtml
и сделал соответствующие изменения ,_ViewStart.cshtml
а также, но , видимо , этого было недостаточно. Как только я вернул имя_Layout.cshtml
, оно начало работать. Что сбивало с толку, так это то, что он_PageLayout.cshtml
был правильно подобран на 32-битной Win7, но не на 64-битной Win7 или WinSvr2K8 R2.Ответы:
ASP.NET 4 не был зарегистрирован в IIS. Пришлось запустить следующую команду в командной строке / запустить
32-битная (x86) Windows
64-битная (x64) Windows
Примечание от комментария Дэвида Мердока:
источник
%windir%\Microsoft.NET\Framework64
каталоге, и измените команду перед запуском (в настоящее время это v4.0.30319).Еще одна вещь, которую нужно убедиться, это следующий набор в вашем файле web.config:
источник
runAllManagedModulesForAllRequests
(который работает даже для статических файлов), вы можете установить исправление Microsoft: microsoft.com/download/en/… .Убедитесь, что у вас есть следующий набор в вашем файле web.config:
Лучшее решение:
Несмотря на то, что вышеупомянутое решение работает абсолютно нормально , оно может вызвать другие проблемы, поскольку оно запускает все ваши зарегистрированные модули HTTP при каждом запросе (даже при каждом запросе .jpg .gif .css .html .pdf и т. Д.) И, очевидно, является пустой тратой ресурсов. Вместо
Убедитесь, что атрибут preCondition пуст, значит он будет выполняться для всех запросов. [Читать дальше] ( http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html , «Читать оригинальный пост»)
источник
<system.web><httpModules><add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" />
,Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
и, казалось, было изменено на дату моей установки VS 2012. Итак, следующий вопрос: что в моем другом проекте позволяет ему функционировать?%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir
топовое решение, по- видимому, не рекомендуется для установки значений по умолчанию, которые должны присутствовать на моем устройстве разработки. Эта команда не решает проблему для меня после удаления ссылки UrlRoutingModule.Другая причина, по которой кто-то может получить эту ошибку, заключается в том, что файл Global.asax больше не находится в корневой папке.
источник
global.asax
влияет только на файл).Я также получил эту ошибку и обнаружил, что «Перенаправление HTTP» не было включено в Windows Server. Это сообщение в блоге также указывает на это: http://blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable-not-working-with-iis.aspx
источник
Сладкий Иисус. Я перепробовал все вышеперечисленное (но мои настройки были идентичны). ЕЩЕ ДРУГОЕ РЕШЕНИЕ, если у вас возникли проблемы:
http://support.microsoft.com/kb/980368
Попробуйте установить этот KB для вашей системы. Если вы видите 404, это может быть потому, что у вас нет этого обновления - и модуль isapi просто не найден, и вы ничего не можете с этим поделать!
источник
Также вы можете переключить AppPool в интегрированный режим. Спасибо Майклу Бьянки ( https://stackoverflow.com/a/7956546/1143515 ), я только хочу подчеркнуть это.
источник
Для меня на виртуальной машине Azure Server 2012 R2 IIS 8.5 с приложением Asp.Net MVC 5 (bin развернут MVC 5) мне нужно было сделать следующее из командной строки с повышенными привилегиями, хотя у меня уже была установлена 4.5:
Источник: http://support.microsoft.com/kb/2736284
Я также с помощью грубой силы установил все функции IIS со следующей оболочкой PowerShell:
Источник: http://www.iis.net/learn/install/install-iis-85/install-iis-85-on-windows-server-2012-r2
Теперь мое приложение работает.
источник
Мы перенесли приложение MVC на новый сервер. .NET 4 и MVC 3 были установлены, но мы все равно получили «Ошибка 403.14». В этом случае это означало, что IIS не понимал, что он имеет дело с приложением MVC, он искал страницу по умолчанию.
Решение было простым: перенаправление HTTP не было установлено на сервере.
Диспетчер серверов - Роли - Веб-сервер (IIS) - Службы ролей - Перенаправление HTTP: не установлено. Установил, проблема решена.
источник
Кроме того, если ваше приложение предварительно скомпилировано, вы должны иметь
PrecompiledApp.config
в корневой папке вашего приложения, в противном случае вы можете получить
HTTP Error 403.14
также.источник
Другое возможное решение, если вы перемещаетесь по своему global.asax, убедитесь, что разметка указывает на правильный класс MvcApplication. Надеюсь, это спасет кого-то в будущем.
источник
Я использовал расширение IIS WebDeploy для импорта своих веб-сайтов из IIS6 в IIS7.5, поэтому все параметры IIS были такими же, как и в производственной среде. Попробовав все представленные здесь решения, ни одно из которых не сработало для меня, мне просто пришлось изменить настройку пула приложений для веб-сайта с Classic на Integrated.
источник
Я внезапно столкнулся с той же проблемой 404.14. Наконец, проблема была исправлена снятием флажка «прекомпилировать во время публикации» в настройках профиля публикации.
источник
Я изменил свой маршрут по умолчанию в одной точке:
Для того, чтобы:
Который дал мне твою ошибку. Рад, что кто-то упомянул о маршрутизации, потому что я, вероятно, был бы на этом навсегда.
источник
В моем случае ASP.NET 4.5 не установлен на сервере, поэтому установка ASP.NET 4.5 устранила проблему.
источник
Вы можете решить эту ошибку, запустив cmd от имени администратора, чем
Сделайте так же, как на картинке для Windows 32 бит
Просто внесите изменения в 64-битной среде как Framework64 вместо только фреймворка. Затем перейдите в iis и обновите сайт.
Если у вас все еще есть ошибки, внесите изменения в пул приложений.
источник
У меня была другая проблема, которая привела к этой проблеме.
Ничего из этого не сработало. Оказалось, что в моем web.config под system.webserver> модулями у меня было следующее:
Очевидно, это убрало модуль аутентификации Windows, который, казалось, каким-то образом сбил все с ног.
Я надеюсь, что это поможет кому-то, так как это стоило мне большую часть вечера!
источник
Пользовательский интерфейс немного отличается в новых версиях Windows Server. Здесь вы должны включить ASP.Net, чтобы он работал на IIS
источник
Добавление другого решения для этой проблемы.
в моем файле Global.asax.cs я отключил попытки использования php-файлов конвейером MVC с использованием следующего:
routes.IgnoreRoute( "{*php}" );
Я делал это ранее в проекте MVC2, и он работал нормально, но выполнение этого в моем приложении MVC 3 вызвало проблему, описанную выше.
источник
Еще одна причина, по которой это может произойти - ваша
RouteConfig.cs
илиWebApiConfig.cs
недействительны.В моем случае маршрут был определен как таковой (обратите внимание на круглые скобки вместо фигурных скобок):
источник
routes.MapRoute( name:"Default", url:"{controller}/{action}/{repositoryId}", defaults:new { controller = "Account", action = "Login", id = UrlParameter.Optional } );
. Когда я починилid = UrlParameter.Optional
наrepositoryId = UrlParameter.Optional
нем начать работать!Обратите внимание, что для пользователей Windows 8 вам необходимо добавить / удалить компоненты Windows и удалить версию перезагрузки .net, а затем переустановить, чтобы зарегистрировать ее в IIS. Я предполагаю, что это произойдет, если вы получите .net 4.5 от visual studio и впоследствии установите IIS.
источник
Как ни странно, переустановка IIS была тем, что сработало для меня, с помощью следующей команды, запущенной из папки версии .net:
Когда я впервые запустил эту команду, я начал получать ошибку HTTP 403.14. Но как только я снова запустил команду, это решило проблему.
Obs : Еще одна вещь, которую я также сделал, чтобы удалить переадресацию HTTP с функций сервера на экране управления сервером перед переустановкой IIS. Возможно, это также повлияло на решение проблемы, но я не уверен. Поэтому, если переустановка IIS все еще не работает, попробуйте удалить HTTP Redirect и попробуйте снова. Надеюсь, это может сработать и для вас.
источник
aspnet_regiis.exe
не устанавливает и не переустанавливает IIS, он просто регистрирует конкретную версию платформы .NET, чтобы IIS мог использовать ее для размещения приложений.Чтобы решить эту проблему, не прибегая к 32-битному режиму, вам придется обновить исходный код этого проекта.
Я поднял этот вопрос в качестве обсуждения на доске обсуждений в проекте ИТ-облачного кодекса.
http://itcloud.codeplex.com/discussions/262000
источник
Это сработало для меня, и это может быть полезно для другого.
Возможно, все необходимые компоненты отсутствуют или / и не все зарегистрированы правильно. Чтобы решить эту проблему, попробуйте снять все параметры в Панели управления -> Включить или отключить функции Windows -> Информационные службы Интернета -> Службы всемирной паутины -> Функции разработки приложений, снять все параметры и еще раз проверить все, затем сбросить IIS и проверьте, решена ли проблема.
источник
Если вы используете IIS 8.5 в Windows 8 или Server 2012, вы можете обнаружить, что mvc 4/5 (.net 4.5) не работает в виртуальном каталоге. Если вы создадите локальную запись хоста в файле хоста, чтобы она указала на ваш локальный компьютер, а затем укажите новый локальный веб-сайт IIS на эту папку (с соответствующей записью заголовка хоста), вы обнаружите, что она работает.
источник
Я создал новое пространство имен (и, следовательно, папку), идентичное маршруту к контроллеру (например,
MvcApp/Test/SomeClasses.cs
иMvcApp/Controllers/TestController.cs
). Это также привело к 403,14!источник
Для меня решением было добавить пакет NuGet Microsoft.AspNet.WebPages (плюс его зависимости Razor и Infrastructure) в мой веб-проект.
Инфраструктуру пришлось принудительно переустанавливать, так как сначала она не добавлялась в качестве ссылки.
источник
В моем случае для .NET CRL Version в пуле приложений prppertires было задано значение Нет управляемого кода (не знаю почему). Установка .NET CRL версии v4.0.30319 решила проблему.
источник