Ошибка ASP.NET IIS 7.5 HTTP 500.21
У меня возникла проблема с настройкой локального сайта.
В проекте используется ASP.NET Framework 4.0, и у меня есть DefaultAppPool для использования 4.0 с управляемым конвейером в качестве интегрированного.
Это ошибка, которую я получаю:
HTTP Error 500.21 - Internal Server Error
Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list
Module IIS Web Core
Notification ExecuteRequestHandler
Handler PageHandlerFactory-Integrated
Error Code 0x8007000d
Requested URL http://localhost:80/default.aspx
Physical Path C:\Snugabye\Website\default.aspx
Logon Method Anonymous
Logon User Anonymous
Most likely causes:
Managed handler is used; however, ASP.NET is not installed or is not installed completely.
There is a typographical error in the configuration for the handler module list.
Things you can try:
Install ASP.NET if you are using managed handler.
Ensure that the handler module name is specified correctly. Module names are case-sensitive and use the format modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule".
В разделе "Панель управления" → "Программы" → "Включить/выключить" окна включены все, что я вижу, это Microsoft.NET Framework 3.5.1, и ничего о 4.0 нет, я чего-то не хватает?
Ответы
Ответ 1
Вы зарегистрировали .NET с помощью IIS?
Если не выполняются следующие команды:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
Вам нужно сделать это из командной строки с повышенными правами (... запустите как admin).
Ответ 2
Я предполагаю, что на основе вашей версии .NET вы находитесь в Windows 7.
В соответствии с .NET 4.0 Версии и зависимости:
(.NET 4.0) Не установлен как часть операционной системы Windows, но может быть установленных отдельно в Windows XP, Windows Server 2003 и более поздних версиях версии Windows.
Следуйте за этой ссылкой для установщика .NET 4.0
После установки вам может потребоваться дополнительная конфигурация. См. этот пост в блоге.
Выдержки из сообщения в блоге в случае потери ссылки:
После установки .NET Framework 4.0 на компьютере есть несколько изменений конфигурации, которые необходимо выполнить для IIS, чтобы запустить страницу ASP.NET 4.0:
Сначала установите пул приложений для запуска в режиме ASP.NET версии 4.0.
Затем вам нужно разрешить запуск ASP.NET v4.0.x. Это делается в ограничениях ISAPI и CGI, установленных на уровне сервера.
(Перейдите в раздел "Администрирование" > "Диспетчер служб Интернета" > "Щелкните на сервере", затем откройте "Ограничения ISAPI и CGI" > "Найти ASP.NET V4.0.XXX", убедитесь, что для ограничения установлено значение "Разрешено". Если установлено значение "Не разрешено", дважды щелкните его и проверьте, разрешен ли путь расширения. Нажмите ОК.)
Примечание. В зависимости от порядка установки вам также может потребоваться запустить aspnet_regiis.exe -i
из командной строки для "переустановки" ASP.NET в IIS.
Инструкции по настройке ограничений ISAPI и CGI для IIS 7.5 для различных вариантов Windows.
Ответ 3
Я столкнулся с той же проблемой. Когда я проверил в версии платформы App Pool.NET, он был v2.0. Мое приложение было совместимо с 4.0. Я побежал ниже команд, которые исправили проблему, и теперь я могу получить свои веб-службы
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
Однако после запуска этих команд фреймворк .NET по умолчанию также изменился на v4.0