Проблема с запуском веб-сайта .net framework 4.0 на iis 7.0


119

Привет, у меня проблема с запуском .NET framework 4.0веб-сайта IIS7.0. ошибка, которую я получил, похожа на:

Ошибка HTTP 404.2 - Not Found «Страница , которую вы запрашиваете не может быть подан из-за ISAPIи CGIсписок Ограничение параметров на веб - сервер».

Module : IsapiModule , 
Notification : ExecuteRequestHandler, 
Handler : PageHandlerFactory-ISAPI-4.0_32bit , 
Error Code : 0x800704ec

Ответы:


289

Перейдите в диспетчер IIS и щелкните имя сервера. Затем щелкните значок «Ограничения ISAPI и CGI» под заголовком IIS. Измените ASP.NET 4.0 с «Не разрешено» на «Разрешено».


44
Подчеркните: щелкните ИМЯ СЕРВЕРА, а не ИМЯ САЙТА, ​​чтобы найти вариант
MacGyver

1
на самом деле, у меня даже нет опции CGI. Я использую Windows 7, 64 бит. Пытаюсь заставить ssrs работать.
Steam

Чувак, ты сэкономил мне время :) Спасибо :)
Антон Бакшеев

2
убедитесь, что вы запускаете IIS как администратор :)
Навид Ахмад

По крайней мере, сегодня ты мой любимый человек. Это устранило проблему, за которой я гонялся несколько часов. Отличный ответ.
asantaballa

8

Если вы посмотрите в разделе « Ограничения ISAPI и CGI» , где все уже установлено как « Разрешено» , убедитесь, что обработчики ASP.NET v4.0.30319 даже есть в списке. В моем случае их не было. Это легко не заметить.


Я добавил один для 32 %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dllбит, а другой для 64 бит %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll. Вы можете назвать их обоих одинаково ASP.NET v4.0.30319.

Установите флажок Разрешить выполнение пути расширения .


6
  1. Зайдите в диспетчер IIS.
  2. открыть имя сервера вроде (PC-Name)\.
  3. затем дважды щелкните Ограничение ISAPI и CGI.
  4. затем выберите ASP.NET v4.0.30319 (32-разрядная версия). Ограничение разрешено.

6

В моем случае проблема была более серьезной: оказалось, что asp.net не был правильно зарегистрирован.

Этот ответ работал нормально .

просто выполнил следующую команду в командной строке

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

Если бы я работал на 32-битной системе, это выглядело бы так:

%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i

3

Шаг 1. Откройте IIS и щелкните имя сервера. Шаг 2. Дважды щелкните «Ограничения ISAPI и CGI». Шаг 3. Щелкните правой кнопкой мыши ASP.NET v4.0.30319 и выберите «Разрешить»

После остановки и запуска службы публикации в Интернете

1. Перейдите в Пуск> Все программы> Администрирование> Службы. 2. В списке служб щелкните правой кнопкой мыши Службу публикации в Интернете, а затем щелкните Остановить (чтобы остановить службу), Пуск (чтобы запустить ее после остановки) или Перезапустить (чтобы перезапустить службу, когда она запущена. ).

Pramesh


2

Если вы используете Delphi или другой скомпилированный CGI, это решение будет работать:

  1. Как указано в других случаях, перейдите в диспетчер IIS и щелкните имя сервера. Затем щелкните значок «Ограничения ISAPI и CGI» под заголовком IIS.

  2. Если у вас все разрешено, это все равно не сработает. Вам нужно щелкнуть «Изменить параметры функции» в «Действиях» (справа) и установить флажок «Разрешить неуказанные модули CGI» или «Разрешить неуказанные модули ISAPI» соответственно.

  3. Нажмите ОК


Я бился головой в течение нескольких дней, и мне пришлось сделать это «Изменить настройки функций», чтобы заставить корпоративный плагин единого входа работать в классическом режиме
Джей Салливан

1

В нашем случае решение этой проблемы не касалось настроек «Ограничения ISAPI и CGI». Ошибка началась после того, как операционный персонал случайно обновил сервер до .NET 4.5, а затем снова перешел на .NET 4.0. Это привело к тому, что некоторые веб-сайты IIS забыли свои соответствующие правильные пулы приложений, и это привело к переключению некоторых пулов приложений с .NET Framework 4.0 на 2.0. Изменение этих настроек назад устранило проблему.


1

Если вы посмотрите в разделе « Ограничения ISAPI и CGI» , и все уже настроено на «Разрешено», а установлен ASP.NET v4.0.30319 , то справа на панели « Действия » щелкните « Изменить параметры функции ... "и установите оба флажка. В моем случае их не было.


0

Попробуйте изменить режим управляемого конвейера AppPool с «Интеграция» на «Классический».


0

В зависимости от типа приложения еще одна вещь, которую нужно проверить, - это в разделе «Дополнительные настройки пула приложений» убедиться, что для параметра «Включить 32-разрядные приложения» установлено значение «Истина».

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



-1

После сопоставления приложения выполните следующие действия.

Откройте IIS. Щелкните "Пулы приложений". Дважды щелкните веб-сайт. Измените режим конвейера управления на "классический", щелкните "ОК".

Ow изменить версию .Net Framework на более низкую версию

Затем нажмите ОК

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.