Як виправити: Обробник “PageHandlerFactory-Integrated” має поганий модуль “ManagedPipelineHandler” у своєму списку модулів


543

Я конфігурую проект MVC 3 для роботи над локальною установкою IIS і зіткнувся з наступними 500 помилками:

Обробник "PageHandlerFactory-Integrated" має поганий модуль "ManagedPipelineHandler" у своєму списку модулів.

Виявляється, це тому, що ASP.Net не був повністю встановлений з IIS, навіть якщо я поставив прапорець у діалоговому вікні "Додати функцію". Щоб виправити це, я просто запустив наступну команду в командному рядку

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

Якби я був у 32-бітовій системі, це виглядало б так:

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

Моє запитання: чи є спосіб встановити IIS на вікні Windows 7 для використання .NET 4.0 (MVC 3), не роблячи цього додаткового кроку?


2
Питання фактично вирішило мою проблему. Я б відповів на це питання як відповідь, якби міг. :)
Seregwethrin

Так, опис питання вирішив і мою проблему. Дякую :-)
sramsay

Відповіді:


950

Виявляється, це тому, що ASP.Net не був повністю встановлений з IIS, навіть якщо я поставив прапорець у діалоговому вікні "Додати функцію". Щоб виправити це, я просто запустив наступну команду в командному рядку

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

Якби я був у 32-бітовій системі, це виглядало б так:

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

Remeber запустить командний рядок як адміністратор ( CTRL+ SHIFT+ ENTER)


Можливо, "Aspnet_regiis.exe не розпізнається як внутрішня чи зовнішня команда, функціонуюча програма чи пакетний файл." помилка. У цьому випадку ви виконується не з папки .NET 4.0, а з 2.0 (див. Мою відповідь нижче)
Микита Г.

На деяких сайтах я читав, що нам потрібно запустити aspnet_regiis.exe, але жоден не пояснив, що параметр потрібен, інакше нічого не відбувається.
Пімента

чудова проста відповідь. Я знав, що це погана установка, не знав, як це виправити.
elcool

Зауважте, що якщо ви використовуєте Windows Server 2012, вам знадобиться це зробити через Керування> Додати ролі та функції> Функції. У моєму випадку IIS8 потрібно було встановити / активувати ASP.NET 4.5.
Старк

5
не забудьте запуститись як адміністратор
Reid Evans

17

Прийнята відповідь правильна, проте іноді ви отримаєте, що " Aspnet_regiis.exe не розпізнається як внутрішня чи зовнішня команда, функціонуюча програма чи пакетний файл ".

Щоб вирішити це, спробуйте наступне:

  1. Переконайтесь, що ваша установка .NET 4.0 не пошкоджена (запустіть інсталятор та 'Відновіть'). Також є ймовірність, що він взагалі не встановлений на вашій машині.

  2. Якщо ви впевнені , що у вас немає .NET 4.0 , встановити і запустити його в .NET 2.0, спробуйте це :

Якщо ви побачите повідомлення "Aspnet_regiis.exe не розпізнається як внутрішня чи зовнішня команда, функціонуюча програма або пакетний файл.", Перейдіть на C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Aspnet_regiis.exe -i у командному рядку.


Aspnet_regiis.exe-я виправив свою проблему на Win Server 2008 IIS7.
VSB

9

Щоб вирішити проблему, спробуйте, repair the .net framework 4а потім запустіть команду

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

9

Помилка: Обробник “PageHandlerFactory-Integrated” має поганий модуль “ManagedPipelineHandler” у своєму списку модулів

Я знайшов статті, щоб вирішити цю проблему, просто запустивши в командному рядку наступні команди:

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

Якщо система 32-бітна, вона виглядала б так:

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

Але, коли я намагався виконати ці команди, використовуючи командний рядок, я отримав таке повідомлення про помилку / попередження:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS версії 4.0.30319.33440 Утиліта адміністрування для встановлення та видалення ASP.NET на локальній машині. Авторські права (C) Корпорація Microsoft. Всі права захищені. Почніть встановлювати ASP.NET (4.0.30319.33440). Ця опція не підтримується в цій версії операційної системи. Замість цього адміністраторам слід встановити / видалити ASP.NET 4.5 з IIS8, використовуючи діалогове вікно "Увімкнути / вимкнути функції Win Dows", "Інструмент управління сервером" або інструмент командного рядка dism.exe. Для отримання детальної інформації див. Http://go.microsoft.com/fwlin k /? LinkID = 216771. Завершено встановлення ASP.NET (4.0.30319.33440). **

Щоб виправити це на Windows 8.1, я б запропонував зробити наступне.

Рішення:

Перейти: Увімкнення та вимкнення функцій Windows -> Інформаційні послуги Інтернету -> Послуги всесвітньої веб-служби -> Особливості розробки додатків -> Увімкнути ASP.NET 4.5

Це має вирішити проблему.


У мене була така ж проблема. Дякую! Для мене мені довелося включити "ASP.NET 4.6".
Дженні О'Рейлі

4

Я б також перевірив очевидне спочатку: що пул додатків встановлений у правильній рамці і що ваш додаток IIS насправді вказує на папку, куди ви розміщуєте свої файли


Так очевидно ... все ж так легко не помітити. Дякую!
Пол Лемке

Це було для мене проблемою. Мабуть, я якось зняв це, або він встановив "Без керованого коду". Переключивши його назад на v4.0, мій сайт завантажився.
redO жовтня13

3

Якщо ви хочете розгорнути додаток MVC без встановлення MVC, ви можете розгорнути DLL-файли MVC зі своїм додатком . Це уникне встановлення MVC 3. Ви можете використовувати функції в деяких просторах імен .Net 4.0, не встановлюючи .Net, використовуючи аналогічний підхід.


4
реєстрація asp.net за допомогою iis не має нічого спільного з тим, що mvc присутній чи ні, так, ви можете включити потрібні dll у свою папку bin, але якщо iis не розпізнає asp-файли, це не так багато, що можуть зробити
dll

3

Я додав шляхи ISAPI / CGI для .Net 4. Що не вирішило проблему. Тоді я запустив ремонт на .Net V4 (Client and Extended). Який попросив перезавантажити. Це зафіксувало це для мене.


2

Щоб виправити це на машині Windows 8.1 Professional, виконайте наступне.

  1. Встановіть інсталятор веб-платформи. http://www.microsoft.com/web/downloads/platform.aspx

  2. В інсталяторі веб-платформ встановіть ASP.NET 4.5 (Ця функція має одну залежність).

Якщо ви просто спробуєте згадану вище команду-підказку cmd з найпопулярнішої відповіді, ви отримаєте таке повідомлення про помилку / попередження:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS версії 4.0.30319.33440 Утиліта адміністрування для встановлення та видалення ASP.NET на локальній машині. Авторські права (C) Корпорація Microsoft. Всі права захищені. Почніть встановлювати ASP.NET (4.0.30319.33440). Ця опція не підтримується в цій версії операційної системи . Замість цього адміністраторам слід встановити / видалити ASP.NET 4.5 з IIS8, використовуючи діалогове вікно "Увімкнути / вимкнути функції Win dows", інструмент управління менеджером сервера або інструмент командного рядка dism.e xe. Для отримання детальної інформації див. Http://go.microsoft.com/fwlin k /? LinkID = 216771. Завершено встановлення ASP.NET (4.0.30319.33440).


2

Я спробував зробити aspnet_regiis в командному рядку, але я отримав відповідь, що у мене немає прав адміністратора. Потім, після ще одного гуглінгу та пошуку рішення, я спробував правою кнопкою миші натиснути cmd та запустити його як адміністратор. Підтвердившись так, коли з’явився діалог, запустив aspnet_iis знову мураха працював як шарм. Якщо коротко: 1. перевірити .NET Framework в app_pool 2. запустити cmd як адміністратор 3. запустити aspnet_regiis -i


2

У мене була така ж проблема, і моє рішення було:

Перейдіть до "Увімкнення та вимкнення функцій Windows"> Інтернет-інформаційні послуги> Послуги всесвітньої веб-служби> Функції розробки додатків> Увімкнути ASP.NET 4.5


Це працює як шарм, але чи є якась причина, чому я не хотів би робити це на виробничому сервері, враховуючи, що це "Особливість розробки додатків"?
Філіп Стратфорд

Я недостатньо знаю про цю функцію, щоб коментувати використання її у виробничих умовах. Однак я знайшов це посилання, яке може бути корисним technet.microsoft.com/en-us/library/hh831475.aspx . Він також містить команду, яку можна використовувати для установки модулів IIS та ASP.NET через командний рядок, що може бути більш підходящим для ваших виробничих потреб.
Райан Бербідж

1

У мене була аналогічна проблема з Windows Server 2012, встановивши функцію " Сервер додатків " у менеджері серверів, виправлена ​​проблема.


1

- Використання функції ініталізації програми - запит неправильних сторінок (.asp) через спадкування конфігурації

500.21 відбудеться лише під час першого підключення користувача. Подальші з'єднання працюють.

Вирішено шляхом виправлення колекції URL-адрес ApplicationInitialization на веб-сайті .NET.


1
  1. бігати cmd

  2. перетягніть Aspnet_regiis.exeкомандний рядок із:

    C:\Windows\Microsoft.NET\Framework64\v2.0.50727\
  3. тип -i(наприклад Aspnet_regiis.exe -i)

  4. натисніть Enter

  5. зачекайте, поки процес завершиться

Удачі!


0

У мене виникла ця проблема і з’ясувалося, що видалення наступної папки допомогло навіть із неекспрес-версією.

C:\Users\<user>\Documents\IISExpress


0

Жодне з них не працювало на мене. Тому, коли я порівнював різні пули додатків з тим, який працював проти того, який не відбувся, мені довелося перейти до розширених налаштувань для пулу додатків і встановити

Увімкнути 32-розрядні програми = вірно

Тоді це добре працювало!


0

У мене була така ж проблема, у моєму випадку обробник був у двох місцях:

<system.web>
...
<httpHandlers>
 <add verb="*" path="*.ashx" type="ApplicArt.Extranet2.Controller.FrontController, ApplicArt.Extranet2.Web.UI" />
  </httpHandlers>
</system.web>

<system.webServer>
<handlers>
   ...
  <add name="FrontController" verb="*" path="*.ashx" type="ApplicArt.Extranet2.Controller.FrontController, ApplicArt.Extranet2.Web.UI"/>
</handlers>
</system.webServer>

І коли я видалив обробник з [system.webServer], моя проблема зникла.


0

у деяких випадках ця помилка виникає через те, що була пошкоджена конфігурація Microsoft .NET Framework 4.0 для ASP .NET, що може статися, якщо Microsoft Visual Studio 2012 був встановлений до Visual Studio 2010 або Microsoft SQL Server 2008.

Спробувавши різні речі, я прийшов до висновку, відремонтуйте .Net установку, виконавши наступну команду. Для отримання додаткової інформації перейдіть за посиланням.

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SetupCache\v4.5.51209\setup.exe /repair /x86 /x64 /ia64 /norestart

https://msdn.microsoft.com/en-us/library/hh168535(v=nav.80).aspx



0

У мене виникло це питання на одному з моїх веб-серверів, коли я намагався переключити додаток з класичного на інтегрований. Він працював чудово на двох інших моїх веб-серверах, не тільки на цьому. Це Server 2012, тому ви не можете виконати aspnet_regiis і не було папки налаштування, щоб спробувати це відновлення. Все було встановлено правильно під функціями.

Пройшовши через% windir% \ system32 \ inetsrv \ config \ applicationHost.config, я знайшов один критичний пропущений біт. У моєму неробочому одному бракували наступні два рядки:

        <add name="ManagedEngineV4.0_32bit" image="C:\Windows\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" />
        <add name="ManagedEngineV4.0_64bit" image="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" />

Одного разу я додав їх, все працювало чудово.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.