Come risolvere: Il gestore "PageHandlerFactory-Integrated" ha un modulo errato "ManagedPipelineHandler" nel suo elenco di moduli


543

Sto configurando un progetto MVC 3 per lavorare su un'installazione locale di IIS e ho riscontrato il seguente errore 500:

Il gestore "PageHandlerFactory-Integrated" ha un modulo errato "ManagedPipelineHandler" nell'elenco dei moduli.

Si scopre che ciò è dovuto al fatto che ASP.Net non è stato completamente installato con IIS anche se ho selezionato quella casella nella finestra di dialogo "Aggiungi funzionalità". Per risolvere questo problema, ho semplicemente eseguito il seguente comando al prompt dei comandi

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

Se fossi stato su un sistema a 32 bit, sarebbe stato il seguente:

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

La mia domanda è: c'è un modo per installare IIS su un box di Windows 7 per usare .NET 4.0 (MVC 3) senza fare questo passo in più?


2
La domanda ha effettivamente risolto il mio problema. Se potessi avrei risposto alla domanda come risposta. :)
Seregwethrin

Sì, anche la descrizione della domanda ha risolto il mio problema. Grazie :-)
sabato

Risposte:


950

Si scopre che ciò è dovuto al fatto che ASP.Net non è stato completamente installato con IIS anche se ho selezionato quella casella nella finestra di dialogo "Aggiungi funzionalità". Per risolvere questo problema, ho semplicemente eseguito il seguente comando al prompt dei comandi

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

Se fossi stato su un sistema a 32 bit, sarebbe stato il seguente:

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

Ricorda di eseguire il prompt dei comandi come amministratore ( CTRL+ SHIFT+ ENTER)


Potresti avere "Aspnet_regiis.exe non riconosciuto come comando interno o esterno, programma eseguibile o file batch". errore. In questo caso il file eseguibile non viene dalla cartella .NET 4.0, ma da quella 2.0 (vedi la mia risposta di seguito)
Nikita G.

In alcuni siti, ho letto che dovevamo eseguire aspnet_regiis.exe ma nessuno ha spiegato che il parametro è obbligatorio, altrimenti non succede nulla.
Pimenta,

ottima risposta semplice. Sapevo che era una cattiva installazione, non sapevo come correggerlo.
elcool,

Tieni presente che se stai utilizzando Windows Server 2012, dovrai farlo tramite Gestisci> Aggiungi ruoli e funzionalità> Funzionalità. Nel mio caso IIS8 doveva avere ASP.NET 4.5 installato / attivato.
Stark,

5
ricordati di correre come amministratore
Reid Evans il

17

La risposta accettata è corretta, tuttavia a volte viene visualizzato il messaggio di errore " Aspnet_regiis.exe non è riconosciuto come comando interno o esterno, programma eseguibile o file batch ".

Per risolverlo prova quanto segue:

  1. Assicurarsi che l'installazione di .NET 4.0 non sia danneggiata (eseguire il programma di installazione e 'Ripararlo'). È anche possibile che non sia installato sul tuo computer.

  2. Se sei sicuro di non aver installato .NET 4.0 e desideri eseguirlo come .NET 2.0, prova questo :

Se viene visualizzato il messaggio "Aspnet_regiis.exe non è riconosciuto come comando interno o esterno, programma eseguibile o file batch.", Passare a C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Aspnet_regiis.exe -i al prompt dei comandi.


Aspnet_regiis.exe -i risolto il mio problema su Win Server 2008 IIS7.
VSB

9

Per risolvere il problema, provare ad repair the .net framework 4eseguire il comando

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

9

Errore: Il gestore "PageHandlerFactory-Integrated" ha un modulo errato "ManagedPipelineHandler" nell'elenco dei moduli

Ho trovato gli articoli per risolvere questo problema semplicemente eseguendo i seguenti comandi al prompt dei comandi:

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

Se il sistema è a 32 bit, sarebbe simile al seguente:

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

Ma, quando ho provato a eseguire questi comandi utilizzando un prompt dei comandi, ho ricevuto il seguente messaggio di errore / avviso:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS versione 4.0.30319.33440 Utilità di amministrazione per installare e disinstallare ASP.NET sul computer locale. Copyright (C) Microsoft Corporation. Tutti i diritti riservati. Inizia l'installazione di ASP.NET (4.0.30319.33440). Questa opzione non è supportata su questa versione del sistema operativo. Gli amministratori dovrebbero invece installare / disinstallare ASP.NET 4.5 con IIS8 utilizzando la finestra di dialogo "Attiva / Disattiva funzionalità Win Windows", lo strumento di gestione Server Manager o lo strumento da riga di comando dism.exe. Per maggiori dettagli, consultare http://go.microsoft.com/fwlin k /? LinkID = 216771. Installazione ASP.NET completata (4.0.30319.33440). **

Per risolvere questo problema su Windows 8.1, suggerirei di fare quanto segue.

Soluzione:

Vai a: Attiva o disattiva le funzionalità di Windows -> Internet Information Services -> World Wide Web Services -> Funzioni di sviluppo applicazioni -> Abilita ASP.NET 4.5

Questo dovrebbe risolvere il problema.


Ho avuto lo stesso problema. Grazie! Per me ho dovuto abilitare "ASP.NET 4.6".
Jenny O'Reilly,

4

Vorrei anche verificare prima l'ovvio: che il pool di applicazioni sia impostato sul framework corretto e che l'applicazione IIS in realtà punti alla cartella in cui vengono inseriti i file


Così ovvio ... ma così facile da trascurare. Grazie!
Paul Lemke,

Questo è stato il problema per me. Apparentemente in qualche modo ho disinserito questo o è stato impostato su "Nessun codice gestito". Il passaggio alla v4.0 ha fatto caricare il mio sito.
rosso ottobre

3

Se si desidera distribuire un'applicazione MVC senza installare MVC, è possibile distribuire le DLL MVC con l'applicazione . Ciò consente di installare MVC 3. È possibile utilizzare le funzionalità in alcuni spazi dei nomi .Net 4.0 senza installare .Net utilizzando un approccio simile.


4
la registrazione di asp.net con iis non ha nulla a che fare con la presenza o meno di mvc, sì, puoi includere le dll richieste nella tua cartella bin, ma se iis non riconosce i file asp non c'è molto che le dll possano fare
Shekhar

3

Ho aggiunto i percorsi ISAPI / CGI per .Net 4. Che non ha risolto il problema. Quindi ho eseguito una riparazione sull'installazione .Net V4 (client ed estesa). Che ha chiesto un riavvio. Questo mi ha risolto.


2

Per risolvere il problema su un computer Windows 8.1 Professional , procedere come segue.

  1. Installa il programma di installazione della piattaforma Web. http://www.microsoft.com/web/downloads/platform.aspx

  2. Nel programma di installazione della piattaforma Web installare ASP.NET 4.5 (questa funzione ha una dipendenza).

Se provi semplicemente il comando di prompt cmd sopra citato dalla risposta più popolare, otterrai il seguente messaggio di errore / avviso:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS versione 4.0.30319.33440 Utilità di amministrazione per installare e disinstallare ASP.NET sul computer locale. Copyright (C) Microsoft Corporation. Tutti i diritti riservati. Inizia l'installazione di ASP.NET (4.0.30319.33440). Questa opzione non è supportata su questa versione del sistema operativo . Gli amministratori dovrebbero invece installare / disinstallare ASP.NET 4.5 con IIS8 utilizzando la finestra di dialogo "Attiva / Disattiva funzionalità Win Windows", lo strumento di gestione Server Manager o lo strumento da riga di comando dism.e xe. Per maggiori dettagli, consultare http://go.microsoft.com/fwlin k /? LinkID = 216771. Terminata l'installazione di ASP.NET (4.0.30319.33440).


2

Ho provato a eseguire aspnet_regiis nel prompt dei comandi, ma ho avuto risposta che non ho i diritti di amministratore. Quindi, dopo aver cercato su Google un po 'di più e cercare una soluzione, ho provato a fare clic con il pulsante destro del mouse su CMD ed eseguirlo come amministratore. Confermato sì quando è apparso il dialogo, ha eseguito di nuovo aspnet_iis e la formica ha funzionato come un incantesimo. In breve: 1. controlla .NET framework in app_pool 2. esegui cmd come amministratore 3. esegui aspnet_regiis -i


2

Ho avuto lo stesso problema e la mia soluzione era:

Vai a "Attiva o disattiva le funzionalità di Windows"> Internet Information Services> World Wide Web Services> Funzioni di sviluppo applicazioni> Abilita ASP.NET 4.5


Funziona come un incantesimo, ma c'è qualche ragione per cui non vorrei farlo su un server di produzione, dato che si tratta di una "Funzione di sviluppo delle applicazioni"?
Philip Stratford,

Non ne so abbastanza di quella funzionalità per commentare su come usarla in un ambiente di produzione. Tuttavia, ho trovato questo link che potrebbe essere utile technet.microsoft.com/en-us/library/hh831475.aspx . Contiene inoltre un comando che è possibile utilizzare per installare i moduli IIS e ASP.NET tramite il prompt dei comandi, che potrebbe essere più adatto alle proprie esigenze di produzione.
Ryan Burbidge,

1

Ho avuto un problema simile con Windows Server 2012, l'installazione della funzionalità " Server applicazioni " nel gestore server ha risolto il problema.


1

-Utilizzando la funzione di inizializzazione dell'applicazione -Richiedere pagine errate (.asp) a causa dell'ereditarietà della configurazione

500.21 si verificherà solo sulla prima connessione utente. Le connessioni successive funzionano.

Risolto correggendo la raccolta url applicationInitialization sul sito Web .NET.


1
  1. correre cmd

  2. trascina e rilascia Aspnet_regiis.exenel prompt dei comandi da:

    C:\Windows\Microsoft.NET\Framework64\v2.0.50727\
  3. tipo -i(ad esempio Aspnet_regiis.exe -i)

  4. premi invio

  5. attendere il completamento del processo

In bocca al lupo!


0

Ho riscontrato questo problema e ho scoperto che la rimozione della seguente cartella ha aiutato, anche con l'edizione non Express.Express:

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


0

Nessuno di questi ha funzionato per me. Quindi, quando ho confrontato vari pool di app con uno che funzionava rispetto a uno che non funzionava, ho dovuto andare in Impostazioni avanzate per il pool di app e impostare

Abilita applicazioni a 32 bit = true

Quindi ha funzionato bene!


0

Ho avuto lo stesso problema, nel mio caso il gestore era in due posti:

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

E quando ho rimosso il mio gestore da [system.webServer] il mio problema è scomparso.


0

in alcuni scenari questo errore si verifica perché la configurazione di Microsoft .NET Framework 4.0 per ASP .NET è stata danneggiata, il che può verificarsi se Microsoft Visual Studio 2012 è stato installato prima di Visual Studio 2010 o Microsoft SQL Server 2008.

Dopo aver provato diverse cose ho raggiunto la conclusione, riparare l'installazione .Net eseguendo il comando seguente. Per maggiori informazioni segui il 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

Stavo riscontrando questo problema su uno dei miei server web quando provavo a passare un apppool dal classico all'integrato. Ha funzionato bene su due dei miei altri server web, non solo su questo. È Server 2012, quindi non puoi eseguire aspnet_regiis e non esiste una cartella setupcache per provare quella riparazione. Tutto è stato impostato correttamente sotto le funzionalità.

Dopo aver esaminato% windir% \ system32 \ inetsrv \ config \ applicationHost.config ho trovato un bit mancante critico. Sotto il mio non funzionante mancavano le seguenti due righe:

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

Una volta aggiunti, tutto ha funzionato alla grande.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.