Como corrigir: O manipulador “PageHandlerFactory-Integrated” possui um módulo inválido “ManagedPipelineHandler” em sua lista de módulos

543

Estou configurando um projeto MVC 3 para funcionar em uma instalação local do IIS e me deparei com o seguinte erro 500:

O manipulador "PageHandlerFactory-Integrated" possui um módulo incorreto "ManagedPipelineHandler" em sua lista de módulos.

Acontece que isso ocorre porque o ASP.Net não foi completamente instalado com o IIS, embora eu tenha marcado essa caixa na caixa de diálogo "Adicionar recurso". Para corrigir isso, simplesmente executei o seguinte comando no prompt de comando

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

Se eu estivesse em um sistema de 32 bits, teria a seguinte aparência:

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

Minha pergunta é: existe uma maneira de instalar o IIS em uma caixa do Windows 7 para usar o .NET 4.0 (MVC 3) sem executar esta etapa extra?

hspain
fonte
2
A questão realmente resolveu meu problema. Eu teria respondido a pergunta como uma resposta, se pudesse. :)
Seregwethrin
Sim, a descrição da pergunta também resolveu meu problema. Obrigado :-)
sramsay

Respostas:

950

Acontece que isso ocorre porque o ASP.Net não foi completamente instalado com o IIS, embora eu tenha marcado essa caixa na caixa de diálogo "Adicionar recurso". Para corrigir isso, simplesmente executei o seguinte comando no prompt de comando

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

Se eu estivesse em um sistema de 32 bits, teria a seguinte aparência:

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

Lembre-se de executar o prompt de comando como administrador ( CTRL+ SHIFT+ ENTER)

hspain
fonte
Você pode ter "Aspnet_regiis.exe não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lotes". erro. Neste caso você não o executável a partir da pasta .NET 4.0, mas a partir do 2.0 um (ver minha resposta abaixo)
Nikita G.
Em alguns sites, li que precisávamos executar aspnet_regiis.exe, mas nenhum explicou que o parâmetro é necessário, caso contrário, nada acontece.
Pimenta
ótima resposta simples. Eu sabia que era uma instalação ruim, não sabia como corrigi-lo.
elcool
Observe que, se você estiver usando o Windows Server 2012, precisará disso em Gerenciar> Adicionar funções e recursos> Recursos. No meu caso, o IIS8 precisava ter o ASP.NET 4.5 instalado / ativado.
Stark
5
lembre-se de executar como administrador
Reid Evans
17

A resposta aceita está correta, no entanto, às vezes, você recebe a mensagem de erro " Aspnet_regiis.exe não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lote ".

Para resolvê-lo, tente o seguinte:

  1. Verifique se a instalação do .NET 4.0 não está corrompida (execute o instalador e 'repare'). Também há uma chance de ele não estar instalado em sua máquina.

  2. Se você tem certeza de que não possui o .NET 4.0 instalado e deseja executá-lo como .NET 2.0, tente o seguinte :

Se você vir a mensagem "Aspnet_regiis.exe não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lotes.", Alterne para C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Aspnet_regiis.exe -i no prompt de comando.

Nikita G.
fonte
Aspnet_regiis.exe -i corrigiu meu problema no Win Server 2008 IIS7.
VSB
9

Para resolver o problema, tente repair the .net framework 4executar o comando

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

fonte
9

Erro: o manipulador “PageHandlerFactory-Integrated” possui um módulo incorreto “ManagedPipelineHandler” em sua lista de módulos

Encontrei os artigos para corrigir esse problema simplesmente executando os seguintes comandos no prompt de comando:

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

Se o sistema for de 32 bits, seria assim:

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

Mas, quando tentei executar esses comandos usando um prompt de comando, recebi a seguinte mensagem de erro / aviso:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS versão 4.0.30319.33440 Utilitário de administração para instalar e desinstalar o ASP.NET na máquina local. Copyright (C) Microsoft Corporation. Todos os direitos reservados. Comece a instalar o ASP.NET (4.0.30319.33440). Esta opção não é suportada nesta versão do sistema operacional. Em vez disso, os administradores devem instalar / desinstalar o ASP.NET 4.5 com IIS8 usando a caixa de diálogo "Ativar / desativar os recursos do Windows Win", a ferramenta de gerenciamento do Gerenciador do Servidor ou a ferramenta de linha de comando dism.exe. Para mais detalhes, consulte http://go.microsoft.com/fwlin k /? LinkID = 216771. Conclusão da instalação do ASP.NET (4.0.30319.33440). **

Para corrigir isso no Windows 8.1, sugiro fazer o seguinte.

Solução:

Vá para: Ativar ou desativar os recursos do Windows -> Serviços de Informações da Internet -> Serviços da World Wide Web -> Recursos de Desenvolvimento de Aplicativos -> Habilitar ASP.NET 4.5

Isto deve resolver o problema.

Shubham Gupta
fonte
Eu tive o mesmo problema. Obrigado! Para mim, eu tive que ativar o "ASP.NET 4.6".
21916 Jenny O'Reilly
4

Eu também verificaria o óbvio primeiro: se o pool de aplicativos está definido com a estrutura correta e se seu aplicativo IIS realmente aponta para a pasta onde você coloca seus arquivos

BornToCode
fonte
Tão óbvio ... mas tão fácil de esquecer. Obrigado!
Paul Lemke
Este foi o problema para mim. Aparentemente, de alguma forma, desmarquei isso ou ele foi definido como "Nenhum código gerenciado". Voltando à versão 4.0, meu site foi carregado.
amigos estão dizendo sobre escola de samba
3

Se você deseja implantar um aplicativo MVC sem instalar o MVC, pode implantar as DLLs do MVC com seu aplicativo . Isso facilita a instalação do MVC 3. Você pode usar os recursos em alguns namespaces do .Net 4.0 sem instalar o .Net usando uma abordagem semelhante.

David Veksler
fonte
4
registrar o asp.net no iis não tem nada a ver com o mvc estar presente ou não, sim, você pode incluir as dlls necessárias na sua pasta bin, mas se o iis não estiver reconhecendo arquivos asp, não há muito o que as dlls possam fazer
Shekhar
3

Adicionei os caminhos ISAPI / CGI para .Net 4. O que não corrigiu o problema. Então, executei um reparo na instalação do .Net V4 (Client and Extended). O que pediu uma reinicialização. Isso consertou para mim.

Kent
fonte
2

Para corrigir isso em uma máquina Windows 8.1 Professional , faça o seguinte.

  1. Instale o instalador da plataforma da web. http://www.microsoft.com/web/downloads/platform.aspx

  2. No Instalador da plataforma web, instale o ASP.NET 4.5 (este recurso tem uma dependência).

Se você simplesmente tentar o comando acima mencionado do cmd da resposta mais popular, receberá a seguinte mensagem de erro / aviso:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS versão 4.0.30319.33440 Utilitário de administração para instalar e desinstalar o ASP.NET na máquina local. Copyright (C) Microsoft Corporation. Todos os direitos reservados. Comece a instalar o ASP.NET (4.0.30319.33440). Esta opção não é suportada nesta versão do sistema operacional . Os administradores devem instalar / desinstalar o ASP.NET 4.5 com IIS8 usando a caixa de diálogo "Ativar / desativar os recursos do Windows Win", a ferramenta de gerenciamento do Server Manager ou a ferramenta de linha de comando dism.e xe. Para mais detalhes, consulte http://go.microsoft.com/fwlin k /? LinkID = 216771. Concluído a instalação do ASP.NET (4.0.30319.33440).

O Gato de Botas
fonte
2

Eu tentei fazer aspnet_regiis no prompt de comando, mas obtive resposta de que não tenho direitos de administrador. Depois de pesquisar mais um pouco e procurar uma solução, tentei clicar com o botão direito do mouse em cmd e executá-lo como administrador. Confirmado sim quando o diálogo apareceu, correu o aspnet_iis novamente e funcionou como um encanto. Resumindo: 1. verifique o .NET framework em app_pool 2. execute o cmd como administrador 3. execute aspnet_regiis -i

Salgueiro
fonte
2

Eu tive o mesmo problema e minha solução foi:

Vá para "Ativar ou desativar recursos do Windows"> Serviços de Informações da Internet> Serviços da World Wide Web> Recursos de Desenvolvimento de Aplicativos> Habilitar ASP.NET 4.5

Ryan Burbidge
fonte
Isso funciona como um encanto, mas há alguma razão para eu não querer fazer isso em um servidor de produção, já que é um "Recurso de Desenvolvimento de Aplicativo"?
Philip Stratford
Não sei o suficiente sobre esse recurso para comentar sobre como usá-lo em um ambiente de produção. No entanto, encontrei este link que pode ser útil technet.microsoft.com/en-us/library/hh831475.aspx . Ele também contém um comando que você pode usar para instalar os módulos IIS e ASP.NET via prompt de comando, o que pode ser mais adequado às suas necessidades de produção.
quer
1

Eu tive um problema semelhante com o Windows server 2012, a instalação do recurso " Servidor de Aplicativos " no gerenciador de servidores corrigiu o problema.

user1255162
fonte
1

-Usando o recurso de initalização de aplicativos -exigindo páginas incorretas (.asp) devido à herança de configuração

500.21 ocorrerá apenas na primeira conexão do usuário. Conexões subsequentes funcionam.

Resolvido corrigindo a coleção de URL applicationInitialization no site .NET.

svl
fonte
1
  1. corre cmd

  2. arraste e solte Aspnet_regiis.exeno prompt de comando em:

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

  4. aperte enter

  5. aguarde até que o processo seja concluído

Boa sorte!

user11716116
fonte
0

Tive esse problema e descobri que a remoção da seguinte pasta ajudou, mesmo com a edição não Express.

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

Thomas Bratt
fonte
0

Nada disso funcionou para mim. Portanto, ao comparar vários pools de aplicativos com um que funcionou contra um que não funcionou, tive que acessar Configurações avançadas do pool de aplicativos e definir

Ativar aplicativos de 32 bits = true

Então funcionou bem!

LarryBud
fonte
0

Eu tive o mesmo problema, no meu caso, o manipulador estava em dois lugares:

<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 removi meu manipulador do [system.webServer], meu problema desapareceu.

Wieslaw Olborski
fonte
0

em algum cenário, esse erro ocorre porque a configuração do Microsoft .NET Framework 4.0 para ASP .NET foi danificada, o que pode ocorrer se o Microsoft Visual Studio 2012 foi instalado antes do Visual Studio 2010 ou do Microsoft SQL Server 2008.

Depois de tentar coisas diferentes, cheguei à conclusão, repare a instalação do .Net executando o seguinte comando. Para mais informações, siga o 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
fonte
0

Para resolver o problema, tente reparar a estrutura .net 4 e execute o comando

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

insira a descrição da imagem aqui

Nabeel
fonte
1
Você leu todas as respostas postadas antes de postar as suas?
M. Adeel Khalid
0

Eu estava tendo esse problema em um dos meus servidores da web ao tentar alternar um pool de aplicativos do clássico para o integrado. Funcionou bem em dois dos meus outros servidores da Web, não apenas neste. É o Server 2012, então você não pode executar o aspnet_regiis e não havia uma pasta setupcache para tentar esse reparo. Tudo foi definido corretamente em recursos.

Depois de passar por% windir% \ system32 \ inetsrv \ config \ applicationHost.config, encontrei um bit crítico faltante. No meu não-trabalho, faltavam as duas linhas a seguir:

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

Depois que os adicionei, tudo funcionou muito bem.

Jason Baginski
fonte