Não foi possível carregar o tipo 'System.ServiceModel.Activation.HttpModule' do assembly 'System.ServiceModel

88

Estou executando meu projeto da Web no IIS.

É um 4.0 Framework APP.

Eu tenho um Service.svc e recebo este erro quando executo meu aplicativo.

"Não foi possível carregar o tipo 'System.ServiceModel.Activation.HttpModule' do assembly 'System.ServiceModel, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089'"

Eu tentei isso -> aspnet_regiis.exe -iru que encontrei em vários fóruns e não resolveu meu problema.

Alguém conhece outro método?

Nicolas Gago
fonte

Respostas:

156

Tente com

c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -iru

Quando várias versões do .NET Framework estão sendo executadas lado a lado em um único computador, a versão ASP.NET ISAPI mapeada para um aplicativo ASP.NET determina qual versão do common language runtime (CLR) é usada para o aplicativo.

O comando acima instala a versão do ASP.NET que está associada ao Aspnet_regiis.exe e só registra o ASP.NET no IIS.

https://support.microsoft.com/en-us/help/2015129/error-message-after-you-install-the--net-framework-4-0-could-not-load

Kishan Zunjare
fonte
1
também podemos usar o CMD: inserindo o endereço, cd \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 e instalá-lo por: comando aspnet_regiis.exe -iru, a seguir seria melhor reiniciar o ISS por iisreset
Harry Sarshogh
2
Isso ainda está se mostrando útil hoje. Eu esperava que agora o MS tivesse corrigido isso. No meu caso, já temos um aplicativo IIS em execução usando a estrutura ASP.net 4.0. Embora não tenha certeza do que o cliente fez além de atualizar para 4.5.1 e um monte de outras atualizações, tornou-se necessário executar novamente este comando, algo em que nossos engenheiros de suporte não pensaram porque não tiveram que fazer por algum tempo.
ebol2000,
obrigado pela resposta. isso, no entanto, não funcionou para mim. mas habilitar tudo em '.Net Framework 3.5' e '.Net Framework 4.5' nos recursos do Windows (conforme mencionado nas respostas abaixo) funcionou.
Bar Ozgur
Eu tenho um servidor windows 2008 x64 R2 e funcionou bem, mas depois de um mês, recebi este erro, encontrei este post e execute este comando no meu servidor e ele corrigiu meu problema. Eu nunca instalo ou atualizo nada no meu servidor, agora a pergunta é por que isso aconteceu? É normal ou é um tipo de hack ou algo parecido?
motevalizadeh
1
Tem funcionado para mim só se eu correr aspnet_regiis.exe -irupara v4.0.XXXXX E v2.0.XXXXX versões!
1_bug
49

Tenho o Windows 8 instalado em minha máquina e a ferramenta aspnet_regiis.exe também não funcionou para mim.

A solução que funcionou para mim está postada neste link, na resposta de Neha: Erro System.ServiceModel.Activation.HttpModule

Em todos os lugares, o problema com esta solução foi mencionado como um novo registro do aspNet usando aspnet_regiis.exe. Mas isso não funcionou para mim.

Embora esta seja uma solução válida (conforme explicado lindamente aqui)

mas não funcionou com o Windows 8.

Para o Windows 8, você precisa dos recursos do Windows e ativar tudo em ".Net Framework 3.5" e ".Net Framework 4.5 Advanced Services".

Obrigada neha

scubaFun
fonte
4
Este conselho também é necessário para o Windows Server 2012.
Chris O,
Obrigado por repassar isso. Funcionou muito bem para corrigir isso no Win 8.1
JJMpls de
2
Você não precisa habilitar tudo, apenas Ativação Http!
Marius Stănescu
O que Marius disse, apenas Http Activation under .NET 3.5 Features
C. Ridley
You & Neha salvou meus cabelos restantes
Karim AG
36

Olá, obrigado pela pergunta; Para resolver: "Não foi possível carregar o tipo 'System.ServiceModel.Activation.HttpModule' do assembly 'System.ServiceModel, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089'"

Em Recursos do Windows, verifique tudo para .NET 4 Advanced Services e .NET 3.5

insira a descrição da imagem aqui

Assim como Nicolas Gago, tentei aspnet_regiis.exe -iru, mas não funcionou. Depois que os recursos foram ativados, o erro de tela amarela desapareceu. Obrigado;

Catto
fonte
3
Isso funcionou para mim no Windows Server 2012 R2 - obrigado!
NickG
O mesmo para o Windows 8. Obrigado!
NikitaBaksalyar
Isso corrigiu o Win8 para mim. Obrigado! +1
Darbio
1
Eu só tive que habilitar a "Ativação Http" porque hospedei os serviços no IIS. Funcionou para mim, obrigado.
Dhanuka777
3
Trabalhou para mim no Windows 10.
Justin
10

Você pode instalar esses recursos no servidor Windows 2012 com powershell usando os seguintes comandos:

Install-WindowsFeature -Name  NET-Framework-Features -IncludeAllSubFeature
Install-WindowsFeature -Name  NET-WCF-HTTP-Activation45 -IncludeAllSubFeature

Você pode obter uma lista de recursos com o seguinte comando:

Get-WindowsFeature | Format-Table
Preben Huybrechts
fonte
6

Ok, finalmente entendi.

Mude esta linha em %windir%\System32\inetsrv\Config\ApplicationHost.config

<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />

Para

<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" />

Se isso não for o suficiente

Adicione esta linha a seguir ao Web.config

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Nicolas Gago
fonte
Alterar o ApplicationHost.config funcionou para mim com o Windows Server 2016. Todas as outras respostas não ajudaram. Obrigado!
Tobias
5

No nó Recursos do Gerenciador do Servidor, você também pode remover alguns dos subitens nos Recursos do .NET Framework 3.5.1 que são instalados pela ativação de algumas das outras funções.

Por exemplo, removemos os recursos de ativação do WCF da seguinte forma e nossos sites voltaram:

  • [x] Recursos do .NET Framework 3.5.1
    • [x] .NET Framework 3.5.1
    • [] Ativação WCF
      • [] Ativação HTTP
      • [] Ativação não HTTP

Nota: isso não exigiu um reinício para nós.

Fordareh
fonte
4

No servidor Windows 2012. Vá para ISS -> Módulos -> Remover o ServiceModel3-0.

NikolasKraschowetz
fonte
1

Recebi esse erro depois de publicar acidentalmente um site no diretório de outro site. Os dois sites tinham versões diferentes de .net. O que consertou para mim foi alterar o pool de aplicativos. Para fazer isso, no gerenciador IIS:

clique no site => Configurações avançadas ... (à direita) => clique à direita do Pool de aplicativos => um botão com "..." deve aparecer => selecione ".NET v4.5 Classic"

Se esse pool de aplicativos não funcionar, tente alguns dos outros.

quickq
fonte
0

Estamos usando um serviço web ao lado de um site e quando publicamos o site ele retorna este mesmo erro. Descobrimos que, ao entrar no IIS e remover o ServiceModel dos Módulos e o svc-Integrated dos Mapeamentos do manipulador, o erro foi embora.

Mike Donner
fonte
0

Estou atrasado, espero que ajude alguém ... Este é um problema conhecido no IIS 8.0

A solução é excluir o módulo 3.x e o manipulador do gerenciador IIS. Você pode excluí-los no nível do aplicativo ou do site se quiser mantê-los em applicationHost.config. Mas eu queria excluí-los de applicationHost.config. siga os seguintes passos:

No gerenciador IIS, clique no nó do nome da máquina. Em “Features View”, clique duas vezes em “Modules”. Encontre “ServiceModel” e remova-o. Imagem 1 para resolver o erro do IIS 8: não foi possível carregar o tipo 'System.ServiceModel.Activation.HttpModule'

Volte para a “Visualização de recursos” do nó do nome da máquina e clique duas vezes em “Mapeamentos do manipulador”. Encontre “svc-Integrated” e remova-o. Imagem 2 para resolver o erro do IIS 8: não foi possível carregar o tipo 'System.ServiceModel.Activation.HttpModule'

Taran
fonte
0

Você pode alterar as configurações de recursos do IIS. As etapas fáceis de resolver abrindo o prompt de comando com executar como administrador (para Windows Server 2008) e executar o comando C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe - iru, isso irá configurar o ASP.Net 4.0 e, em seguida, redefinir o IIS com o comando iisreset

Referências: https://support.plesk.com/hc/en-us/articles/213392249-ASP-website-shows-error-Could-not-load-type-System-ServiceModel-Activation-HttpModule-from-assembly

Kailash Mali
fonte
-1

exclua o módulo que é identificado na mensagem de erro .Net, 1 voto negativo

No servidor Windows 2012. Vá para ISS -> Módulos -> Remover o ServiceModel3-0. (sem número funcionou para mim)

Peter
fonte
-1

iniciar-> Executar -> c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -iru

Mukesh Depani
fonte