Jak naprawić: Program obsługi „PageHandlerFactory-Integrated” ma zły moduł „ManagedPipelineHandler” na liście modułów


543

Konfiguruję projekt MVC 3 do pracy na lokalnej instalacji IIS i napotkałem następujący błąd 500:

Program obsługi „PageHandlerFactory-Integrated” ma zły moduł „ManagedPipelineHandler” na liście modułów.

Okazuje się, że dzieje się tak, ponieważ ASP.Net nie został całkowicie zainstalowany z IIS, mimo że zaznaczyłem to pole w oknie dialogowym „Dodaj funkcję”. Aby to naprawić, po prostu uruchomiłem następujące polecenie w wierszu polecenia

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

Gdybym był na systemie 32-bitowym, wyglądałoby to tak:

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

Moje pytanie brzmi: czy jest sposób na zainstalowanie IIS na komputerze z systemem Windows 7, aby móc korzystać z .NET 4.0 (MVC 3) bez wykonywania tego dodatkowego kroku?


2
Pytanie faktycznie rozwiązało mój problem. Gdybym mógł, odpowiedziałbym na pytanie jako odpowiedź. :)
Seregwethrin

Tak, opis pytania rozwiązał również mój problem. Dzięki :-)
sramsay

Odpowiedzi:


950

Okazuje się, że dzieje się tak, ponieważ ASP.Net nie został całkowicie zainstalowany z IIS, mimo że zaznaczyłem to pole w oknie dialogowym „Dodaj funkcję”. Aby to naprawić, po prostu uruchomiłem następujące polecenie w wierszu polecenia

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

Gdybym był na systemie 32-bitowym, wyglądałoby to tak:

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

Pamiętaj, aby uruchomić wiersz polecenia jako administrator ( CTRL+ SHIFT+ ENTER)


Być może „Aspnet_regiis.exe nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy”. błąd. W tym przypadku jesteś plikiem wykonywalnym nie z folderu .NET 4.0, ale z folderu 2.0 (patrz moja odpowiedź poniżej)
Nikita G.

W niektórych witrynach przeczytałem, że musimy uruchomić aspnet_regiis.exe, ale żaden nie wyjaśnił, że parametr jest wymagany, w przeciwnym razie nic się nie stanie.
Pimenta

świetna prosta odpowiedź. Wiedziałem, że to zła instalacja, nie wiedziałem, jak to naprawić.
elcool,

Pamiętaj, że jeśli używasz systemu Windows Server 2012, musisz to zrobić w Zarządzaj> Dodaj role i funkcje> Funkcje. W moim przypadku IIS8 musiał mieć zainstalowany / aktywowany program ASP.NET 4.5.
Stark

5
pamiętaj, aby uruchomić jako administrator
Reid Evans,

17

Akceptowana odpowiedź jest poprawna, jednak czasami pojawia się komunikat „ Aspnet_regiis.exe nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy.

Aby rozwiązać problem, spróbuj wykonać następujące czynności:

  1. Upewnij się, że instalacja .NET 4.0 nie jest uszkodzona (uruchom instalator i „Napraw”). Istnieje również szansa, że ​​w ogóle nie jest zainstalowany na twoim komputerze.

  2. Jeśli masz pewność, że nie masz .NET 4.0 i chcesz go uruchomić jako .NET 2.0, spróbuj tego :

Jeśli zobaczysz komunikat „Aspnet_regiis.exe nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy.”, Przejdź do C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Aspnet_regiis.exe -i w wierszu polecenia.


Aspnet_regiis.exe -i naprawił mój problem na Win Server 2008 IIS7.
VSB

9

Aby rozwiązać problem, spróbuj, repair the .net framework 4a następnie uruchom polecenie

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

9

Błąd: moduł obsługi „PageHandlerFactory-Integrated” ma zły moduł „ManagedPipelineHandler” na liście modułów

Znalazłem artykuły, aby rozwiązać ten problem, po prostu uruchamiając następujące polecenia w wierszu polecenia:

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

Jeśli system jest 32-bitowy, wyglądałby tak:

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

Ale kiedy próbowałem wykonać te polecenia za pomocą wiersza polecenia, otrzymałem następujący komunikat o błędzie / ostrzeżeniu:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS wersja 4.0.30319.33440 Narzędzie administracyjne do instalowania i odinstalowywania ASP.NET na komputerze lokalnym. Prawa autorskie (C) Microsoft Corporation. Wszelkie prawa zastrzeżone. Rozpocznij instalację programu ASP.NET (4.0.30319.33440). Ta opcja nie jest obsługiwana w tej wersji systemu operacyjnego. Administratorzy powinni zamiast tego zainstalować / odinstalować program ASP.NET 4.5 z IIS8 za pomocą okna dialogowego „Włączanie / wyłączanie funkcji systemu Windows”, narzędzia zarządzania Menedżera serwera lub narzędzia wiersza poleceń. Aby uzyskać więcej informacji, zobacz http://go.microsoft.com/fwlin k /? LinkID = 216771. Zakończono instalację ASP.NET (4.0.30319.33440). **

Aby rozwiązać ten problem w systemie Windows 8.1, sugeruję wykonanie następujących czynności.

Rozwiązanie:

Idź: Włącz lub wyłącz funkcje systemu Windows -> Internetowe usługi informacyjne -> Usługi WWW -> Funkcje tworzenia aplikacji -> Włącz ASP.NET 4.5

To powinno rozwiązać problem.


Miałem ten sam problem. Dzięki! Dla mnie musiałem włączyć „ASP.NET 4.6”.
Jenny O'Reilly,

4

Chciałbym również sprawdzić oczywiste pierwsze: że pula aplikacji jest ustawiona na poprawną strukturę i że twoja aplikacja IIS faktycznie wskazuje folder, w którym umieszczasz swoje pliki


Tak oczywiste ... ale tak łatwe do przeoczenia. Dzięki!
Paul Lemke,

To był dla mnie problem. Najwyraźniej jakoś to rozbroiłem lub ustawiono na „Brak zarządzanego kodu”. Przełączenie go z powrotem do wersji 4.0 spowodowało załadowanie mojej witryny.
redOctober13

3

Jeśli chcesz wdrożyć aplikację MVC bez instalowania MVC, możesz wdrożyć biblioteki DLL MVC wraz z aplikacją . Pomaga to w instalacji MVC 3. Można używać funkcji w niektórych przestrzeniach nazw .Net 4.0 bez instalowania .Net przy użyciu podobnego podejścia.


4
rejestracja asp.net w iis nie ma nic wspólnego z obecnością lub brakiem mvc, tak, możesz zawrzeć wymagane dll w folderze bin, ale jeśli iis nie rozpoznaje plików asp, to niewiele może zrobić dll
Shekhar

3

Dodałem ścieżki ISAPI / CGI dla .Net 4. Które nie rozwiązało problemu. Następnie uruchomiłem naprawę instalacji .Net V4 (Client i Extended). Który poprosił o ponowne uruchomienie. Naprawiłem to dla mnie.


2

Aby to naprawić w komputerze systemem Windows 8.1 Professional , wykonaj następujące czynności.

  1. Zainstaluj instalator platformy internetowej. http://www.microsoft.com/web/downloads/platform.aspx

  2. W Instalatorze platformy internetowej zainstaluj program ASP.NET 4.5 (ta funkcja ma jedną zależność).

Jeśli po prostu wypróbujesz wyżej wymienione polecenie cmd z najpopularniejszej odpowiedzi, otrzymasz następujący komunikat o błędzie / ostrzeżeniu:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS wersja 4.0.30319.33440 Narzędzie administracyjne do instalowania i odinstalowywania ASP.NET na komputerze lokalnym. Prawa autorskie (C) Microsoft Corporation. Wszelkie prawa zastrzeżone. Rozpocznij instalację programu ASP.NET (4.0.30319.33440). Ta opcja nie jest obsługiwana w tej wersji systemu operacyjnego . Administratorzy powinni zamiast tego zainstalować / odinstalować program ASP.NET 4.5 z IIS8 za pomocą okna dialogowego „Włącz / wyłącz funkcje systemu Windows”, narzędzia do zarządzania Menedżera serwera lub narzędzia wiersza poleceń. Aby uzyskać więcej informacji, zobacz http://go.microsoft.com/fwlin k /? LinkID = 216771. Zakończono instalację ASP.NET (4.0.30319.33440).


2

Próbowałem wykonać polecenie aspnet_regiis w wierszu polecenia, ale otrzymałem odpowiedź, że nie mam uprawnień administratora. Następnie, po trochę googlingu i szukaniu rozwiązania, spróbowałem kliknąć prawym przyciskiem myszy cmd i uruchomić go jako administrator. Potwierdzono tak, kiedy pojawiło się okno dialogowe, ponownie uruchomiono aspnet_iis mrówka działała jak urok. W skrócie: 1. sprawdź .NET Framework w app_pool 2. uruchom cmd jako administrator 3. uruchom aspnet_regiis -i


2

Miałem ten sam problem, a moim rozwiązaniem było:

Wybierz „Włączanie lub wyłączanie funkcji systemu Windows”> Internetowe usługi informacyjne> Usługi WWW> Funkcje tworzenia aplikacji> Włącz ASP.NET 4.5


Działa to jak urok, ale czy jest jakiś powód, dla którego nie chciałbym tego robić na serwerze produkcyjnym, biorąc pod uwagę, że jest to „funkcja programowania aplikacji”?
Philip Stratford,

Nie wiem wystarczająco dużo o tej funkcji, aby skomentować użycie jej w środowisku produkcyjnym. Jednak znalazłem ten link, który może być pomocny technet.microsoft.com/en-us/library/hh831475.aspx . Zawiera także polecenie, którego można użyć do zainstalowania modułów IIS i ASP.NET za pomocą wiersza polecenia, co może być lepiej dostosowane do potrzeb produkcyjnych.
Ryan Burbidge

1

Miałem podobny problem z Windows Server 2012, naprawiłem ten problem , instalując funkcję „ Serwer aplikacji ” w menedżerze serwerów.


1

-Używanie funkcji inicjowania aplikacji -wymaganie błędnych stron (.asp) z powodu dziedziczenia konfiguracji

500.21 wystąpi tylko przy pierwszym połączeniu użytkownika. Kolejne połączenia działają.

Rozwiązane przez poprawienie kolekcji url applicationInitialization w witrynie .NET.


1
  1. biegać cmd

  2. przeciągnij i upuść Aspnet_regiis.exew wierszu polecenia z:

    C:\Windows\Microsoft.NET\Framework64\v2.0.50727\
  3. typ -i(na przykład Aspnet_regiis.exe -i)

  4. wciśnij Enter

  5. poczekaj, aż proces się zakończy

Powodzenia!


0

Miałem ten problem i stwierdziłem, że usunięcie następującego folderu pomogło, nawet w przypadku edycji innej niż Express.

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


0

Żadne z tych nie działało dla mnie. Porównując różne pule aplikacji z jedną, która działała, a drugą, która nie działała, musiałem przejść do Ustawień zaawansowanych dla puli aplikacji i ustawić

Włącz aplikacje 32-bitowe = prawda

Potem działało dobrze!


0

Miałem ten sam problem, w moim przypadku moduł obsługi był w dwóch miejscach:

<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>

A kiedy usunąłem program obsługi z [system.webServer], mój problem zniknął.


0

w niektórych scenariuszach ten błąd występuje, ponieważ konfiguracja Microsoft .NET Framework 4.0 dla ASP .NET została uszkodzona, co może wystąpić, jeśli Microsoft Visual Studio 2012 został zainstalowany przed Visual Studio 2010 lub Microsoft SQL Server 2008.

Po wypróbowaniu różnych rzeczy doszedłem do wniosku, napraw instalację .Net, uruchamiając następujące polecenie. Aby uzyskać więcej informacji, kliknij link.

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

Aby rozwiązać problem, spróbuj naprawić platformę .net 4, a następnie uruchom polecenie

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

wprowadź opis zdjęcia tutaj


1
Czy przeczytałeś wszystkie zamieszczone odpowiedzi przed opublikowaniem własnych?
M. Adeel Khalid

0

Miałem ten problem na jednym z moich serwerów sieciowych, gdy próbowałem zmienić aplikację z klasycznej na zintegrowaną. Działa dobrze na dwóch moich innych serwerach WWW, nie tylko na tym. Jest Server 2012, więc nie możesz wykonać aspnet_regiis i nie było folderu setupcache, aby spróbować naprawić. Wszystko zostało ustawione poprawnie w ramach funkcji.

Po przejściu przez% windir% \ system32 \ inetsrv \ config \ applicationHost.config znalazłem jeden krytyczny brakujący bit. Pod moim niedziałającym brakowało dwóch następujących wierszy:

        <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" />

Po ich dodaniu wszystko działało świetnie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.