Behebung: Der Handler "PageHandlerFactory-Integrated" hat ein fehlerhaftes Modul "ManagedPipelineHandler" in seiner Modulliste

543

Ich konfiguriere ein MVC 3-Projekt für die lokale Installation von IIS und habe den folgenden 500-Fehler festgestellt:

Der Handler "PageHandlerFactory-Integrated" hat ein fehlerhaftes Modul "ManagedPipelineHandler" in seiner Modulliste.

Es stellt sich heraus, dass dies daran liegt, dass ASP.Net nicht vollständig mit IIS installiert wurde, obwohl ich dieses Kontrollkästchen im Dialogfeld "Feature hinzufügen" aktiviert habe. Um dies zu beheben, habe ich einfach den folgenden Befehl an der Eingabeaufforderung ausgeführt

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

Wenn ich auf einem 32-Bit-System gewesen wäre, hätte es wie folgt ausgesehen:

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

Meine Frage ist, gibt es eine Möglichkeit, IIS auf einer Windows 7-Box zu installieren, um .NET 4.0 (MVC 3) zu verwenden, ohne diesen zusätzlichen Schritt auszuführen?

hspain
quelle
2
Die Frage hat mein Problem tatsächlich gelöst. Ich hätte die Frage als Antwort beantwortet, wenn ich könnte. :)
Seregwethrin
Ja, die Beschreibung der Frage hat auch mein Problem gelöst. Danke :-)
Sramsay

Antworten:

950

Es stellt sich heraus, dass dies daran liegt, dass ASP.Net nicht vollständig mit IIS installiert wurde, obwohl ich dieses Kontrollkästchen im Dialogfeld "Feature hinzufügen" aktiviert habe. Um dies zu beheben, habe ich einfach den folgenden Befehl an der Eingabeaufforderung ausgeführt

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

Wenn ich auf einem 32-Bit-System gewesen wäre, hätte es wie folgt ausgesehen:

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

Denken Sie daran, die Eingabeaufforderung als Administrator auszuführen ( CTRL+ SHIFT+ ENTER).

hspain
quelle
Möglicherweise haben Sie "Aspnet_regiis.exe wird nicht als interner oder externer Befehl, bedienbares Programm oder Batchdatei erkannt." Error. In diesem Fall haben Sie die ausführbare Datei nicht aus dem .NET 4.0-Ordner, sondern aus dem 2.0-Ordner (siehe meine Antwort unten)
Nikita G.
Auf einigen Websites habe ich gelesen, dass wir aspnet_regiis.exe ausführen müssen, aber keiner hat erklärt, dass der Parameter erforderlich ist, sonst passiert nichts.
Pimenta
tolle einfache Antwort. Ich wusste, dass es eine schlechte Installation war, wusste nicht, wie ich sie korrigieren sollte.
Elcool
Wenn Sie Windows Server 2012 verwenden, müssen Sie dies über Verwalten> Rollen und Funktionen hinzufügen> Funktionen tun. In meinem Fall musste auf IIS8 ASP.NET 4.5 installiert / aktiviert sein.
Stark
5
Denken Sie daran, als Administrator zu laufen
Reid Evans
17

Die akzeptierte Antwort ist korrekt. Manchmal wird jedoch die Fehlermeldung " Aspnet_regiis.exe wird nicht als interner oder externer Befehl, bedienbares Programm oder Batchdatei erkannt " angezeigt .

Versuchen Sie Folgendes, um das Problem zu beheben:

  1. Stellen Sie sicher, dass Ihre .NET 4.0-Installation nicht beschädigt ist (führen Sie das Installationsprogramm aus und reparieren Sie es). Es besteht auch die Möglichkeit, dass es überhaupt nicht auf Ihrem Computer installiert ist.

  2. Wenn Sie sicher sind, dass Sie .NET 4.0 nicht installiert haben und es als .NET 2.0 ausführen möchten, versuchen Sie Folgendes :

Wenn die Meldung "Aspnet_regiis.exe wird nicht als interner oder externer Befehl, bedienbares Programm oder Batchdatei erkannt." Angezeigt wird, wechseln Sie zu C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Aspnet_regiis.exe -i an der Eingabeaufforderung.

Nikita G.
quelle
Aspnet_regiis.exe -i hat mein Problem unter Win Server 2008 IIS7 behoben.
VSB
9

Um das Problem zu beheben, versuchen Sie, repair the .net framework 4den Befehl auszuführen

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

Fehler: Der Handler "PageHandlerFactory-Integrated" hat ein fehlerhaftes Modul "ManagedPipelineHandler" in seiner Modulliste

Ich habe die Artikel gefunden, um dieses Problem zu beheben, indem ich einfach die folgenden Befehle an der Eingabeaufforderung ausführte:

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

Wenn das System 32-Bit ist, hätte es so ausgesehen:

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

Als ich jedoch versuchte, diese Befehle über eine Eingabeaufforderung auszuführen, wurde die folgende Fehler- / Warnmeldung angezeigt:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS Version 4.0.30319.33440 Verwaltungsdienstprogramm zum Installieren und Deinstallieren von ASP.NET auf dem lokalen Computer. Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten. Starten Sie die Installation von ASP.NET (4.0.30319.33440). Diese Option wird von dieser Version des Betriebssystems nicht unterstützt. Administratoren sollten stattdessen ASP.NET 4.5 mit IIS8 über das Dialogfeld "Windows-Funktionen ein- / ausschalten", das Server Manager-Verwaltungstool oder das Befehlszeilentool dism.exe installieren / deinstallieren. Weitere Informationen finden Sie unter http://go.microsoft.com/fwlin k /? LinkID = 216771. Installation von ASP.NET (4.0.30319.33440) abgeschlossen. **

Um dies unter Windows 8.1 zu beheben, würde ich Folgendes vorschlagen.

Lösung:

Springen Sie: Windows-Funktionen ein- oder ausschalten -> Internetinformationsdienste -> World Wide Web Services -> Anwendungsentwicklungsfunktionen -> ASP.NET 4.5 aktivieren

Dies sollte das Problem beheben.

Shubham Gupta
quelle
Ich hatte das gleiche Problem. Vielen Dank! Für mich musste ich "ASP.NET 4.6" aktivieren.
Jenny O'Reilly
4

Ich würde auch zuerst das Offensichtliche überprüfen: dass der Anwendungspool auf das richtige Framework eingestellt ist und dass Ihre IIS-Anwendung tatsächlich auf den Ordner verweist, in dem Sie Ihre Dateien ablegen

BornToCode
quelle
So offensichtlich ... und doch so leicht zu übersehen. Vielen Dank!
Paul Lemke
Das war das Problem für mich. Anscheinend habe ich das irgendwie deaktiviert oder es wurde auf "No Managed Code" gesetzt. Durch das Zurückschalten auf Version 4.0 wurde meine Website geladen.
RedOctober13
3

Wenn Sie eine MVC-Anwendung bereitstellen möchten, ohne MVC zu installieren, können Sie die MVC-DLLs mit Ihrer Anwendung bereitstellen . Dies umgeht die Installation von MVC 3. Sie können Funktionen in einigen .NET 4.0-Namespaces verwenden, ohne .NET mit einem ähnlichen Ansatz zu installieren.

David Veksler
quelle
4
Das Registrieren von asp.net bei iis hat nichts damit zu tun, dass mvc vorhanden ist oder nicht. Ja, Sie können die erforderlichen DLLs in Ihren bin-Ordner aufnehmen, aber wenn iis asp-Dateien nicht erkennt, können die DLLs nicht viel tun
Shekhar
3

Ich habe die ISAPI / CGI-Pfade für .Net 4 hinzugefügt. Dadurch wurde das Problem nicht behoben. Also habe ich dann eine Reparatur für die .Net V4-Installation (Client und Extended) durchgeführt. Welches für einen Neustart gefragt. Das hat es für mich behoben.

Kent
quelle
2

Gehen Sie wie folgt vor, um dies auf einem Windows 8.1 Professional- Computer zu beheben .

  1. Installieren Sie das Web Platform Installer. http://www.microsoft.com/web/downloads/platform.aspx

  2. Installieren Sie im Web Platform Installer ASP.NET 4.5 (Diese Funktion hat eine Abhängigkeit).

Wenn Sie einfach den oben genannten Befehl cmd prompt in der beliebtesten Antwort versuchen, wird die folgende Fehler- / Warnmeldung angezeigt:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS Version 4.0.30319.33440 Verwaltungsdienstprogramm zum Installieren und Deinstallieren von ASP.NET auf dem lokalen Computer. Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten. Starten Sie die Installation von ASP.NET (4.0.30319.33440). Diese Option wird von dieser Version des Betriebssystems nicht unterstützt . Administratoren sollten stattdessen ASP.NET 4.5 mit IIS8 über das Dialogfeld "Windows-Funktionen ein- / ausschalten", das Server Manager-Verwaltungstool oder das Befehlszeilentool dism.e xe installieren / deinstallieren. Weitere Informationen finden Sie unter http://go.microsoft.com/fwlin k /? LinkID = 216771. Installation von ASP.NET (4.0.30319.33440) abgeschlossen.

Der gestiefelte Kater
quelle
2

Ich habe versucht, aspnet_regiis in der Eingabeaufforderung auszuführen, aber ich habe die Antwort erhalten, dass ich keine Administratorrechte habe. Nachdem ich noch ein bisschen gegoogelt und nach einer Lösung gesucht hatte, versuchte ich, mit der rechten Maustaste auf cmd zu klicken und es als Administrator auszuführen. Bestätigt ja, als der Dialog erschien, lief aspnet_iis erneut und funktionierte wie ein Zauber. Kurz gesagt: 1. Überprüfen Sie das .NET Framework in app_pool. 2. Führen Sie cmd als Administrator aus. 3. Führen Sie aspnet_regiis -i aus

Weide
quelle
2

Ich hatte das gleiche Problem und meine Lösung war:

Gehen Sie zu "Windows-Funktionen ein- oder ausschalten"> Internetinformationsdienste> World Wide Web Services> Anwendungsentwicklungsfunktionen> ASP.NET 4.5 aktivieren

Ryan Burbidge
quelle
Das funktioniert wie ein Zauber, aber gibt es einen Grund, warum ich dies nicht auf einem Produktionsserver tun möchte, da es sich um eine "Anwendungsentwicklungsfunktion" handelt?
Philip Stratford
Ich weiß nicht genug über diese Funktion, um die Verwendung in einer Produktionsumgebung zu kommentieren. Ich habe jedoch diesen Link gefunden, der hilfreich sein könnte technet.microsoft.com/en-us/library/hh831475.aspx . Es enthält auch einen Befehl, mit dem Sie IIS- und ASP.NET-Module über die Eingabeaufforderung installieren können, die möglicherweise besser für Ihre Produktionsanforderungen geeignet ist.
Ryan Burbidge
1

Ich hatte ein ähnliches Problem mit Windows Server 2012. Durch die Installation der Funktion " Anwendungsserver " im Server-Manager wurde das Problem behoben.

user1255162
quelle
1

- Verwenden der Anwendungsinitalisierungsfunktion - Anfordern falscher Seiten (.asp) aufgrund der Konfigurationsvererbung

500.21 tritt nur bei der ersten Benutzerverbindung auf. Nachfolgende Verbindungen funktionieren.

Behebung durch Korrektur der URL-Sammlung applicationInitialization auf der .NET-Website.

svl
quelle
1
  1. Lauf cmd

  2. Ziehen und Ablegen Aspnet_regiis.exein die Eingabeaufforderung von:

    C:\Windows\Microsoft.NET\Framework64\v2.0.50727\
  3. Typ -i(zum Beispiel Aspnet_regiis.exe -i)

  4. drücke Enter

  5. Warten Sie, bis der Vorgang abgeschlossen ist

Viel Glück!

user11716116
quelle
0

Ich hatte dieses Problem und stellte fest, dass das Entfernen des folgenden Ordners auch bei der Nicht-Express-Edition hilfreich war. Express:

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

Thomas Bratt
quelle
0

Nichts davon hat bei mir funktioniert. Da ich verschiedene App-Pools mit einem funktionierenden mit einem nicht funktionierenden verglichen habe, musste ich in die erweiterten Einstellungen für den App-Pool gehen und festlegen

32-Bit-Anwendungen aktivieren = true

Dann hat es gut funktioniert!

LarryBud
quelle
0

Ich hatte das gleiche Problem, in meinem Fall war der Handler an zwei Stellen:

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

Und als ich meinen Handler von [system.webServer] entfernte, verschwand mein Problem.

Wieslaw Olborski
quelle
0

In einigen Szenarien tritt dieser Fehler auf, weil die Microsoft .NET Framework 4.0-Konfiguration für ASP .NET beschädigt wurde. Dies kann auftreten, wenn Microsoft Visual Studio 2012 vor Visual Studio 2010 oder Microsoft SQL Server 2008 installiert wurde.

Nachdem ich verschiedene Dinge ausprobiert habe, bin ich zu dem Schluss gekommen, dass Sie die .Net-Installation reparieren, indem Sie den folgenden Befehl ausführen. Für weitere Informationen folgen Sie dem 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

Sairfan
quelle
0

Um das Problem zu beheben, versuchen Sie, das .net Framework 4 zu reparieren, und führen Sie dann den Befehl aus

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

Geben Sie hier die Bildbeschreibung ein

Nabeel
quelle
1
Haben Sie alle geposteten Antworten gelesen, bevor Sie Ihre eigenen posten?
M. Adeel Khalid
0

Ich hatte dieses Problem auf einem meiner Webserver, als ich versuchte, einen Apppool von klassisch auf integriert umzustellen. Bei zwei meiner anderen Webserver hat es gut funktioniert, nicht nur bei diesem. Es ist Server 2012, daher können Sie aspnet_regiis nicht ausführen, und es gab keinen Setupcache-Ordner, um diese Reparatur durchzuführen. Alles wurde unter Features richtig eingestellt.

Nachdem ich% windir% \ system32 \ inetsrv \ config \ applicationHost.config durchgesehen hatte, fand ich ein kritisches fehlendes Bit. Unter meiner nicht arbeitenden fehlten die folgenden zwei Zeilen:

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

Nachdem ich sie hinzugefügt hatte, funktionierte alles großartig.

Jason Baginski
quelle