No se pudo cargar el tipo 'System.ServiceModel.Activation.HttpModule' del ensamblaje 'System.ServiceModel

91

Estoy ejecutando mi proyecto web en IIS.

Es una aplicación de marco 4.0.

Tengo un Service.svc y obtengo este error cuando ejecuto mi aplicación.

"No se pudo cargar el tipo 'System.ServiceModel.Activation.HttpModule' del ensamblaje 'System.ServiceModel, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089'"

Intenté esto -> aspnet_regiis.exe -iru que encontré en muchos foros y no resolvió mi problema.

¿Alguien conoce otro método?

Nicolás Gago
fuente

Respuestas:

160

Prueba con

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

Cuando se ejecutan varias versiones de .NET Framework en paralelo en una sola computadora, la versión de ASP.NET ISAPI asignada a una aplicación ASP.NET determina qué versión de Common Language Runtime (CLR) se usa para la aplicación.

El comando anterior instalará la versión de ASP.NET que está asociada con Aspnet_regiis.exe y solo registra ASP.NET en IIS.

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

Kishan Zunjare
fuente
1
también podemos usar CMD: ingresando la dirección, cd \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 y luego instalarlo con: comando aspnet_regiis.exe -iru, luego sería mejor reiniciar ISS con iisreset
Harry Sarshogh
2
Esto sigue resultando útil en la actualidad. Habría esperado que a estas alturas MS hubiera solucionado esto. En mi caso, ya tenemos una aplicación IIS en ejecución que utiliza el marco ASP.net 4.0. Si bien no estaba exactamente seguro de lo que hizo el cliente aparte de actualizar a 4.5.1 y un montón de otras actualizaciones, fue necesario volver a ejecutar este comando, algo en lo que nuestros ingenieros de soporte no pensaron porque no tenían que hacer por algún tiempo.
ebol2000
gracias por la respuesta. esto, sin embargo, no funcionó para mí. pero habilitar todo en '.Net Framework 3.5' y '.Net Framework 4.5' en las funciones de Windows (como se menciona en las respuestas a continuación) funcionó.
Ozgur Bar
Tengo un servidor Windows 2008 x64 R2 y funcionó bien, pero después de un mes, recibí este error, encontré esta publicación y ejecuté este comando en mi servidor y solucionó mi problema. Nunca instalo ni actualizo nada en mi servidor, ahora la pregunta es ¿por qué sucedió ?, ¿es normal o es un tipo de pirateo o algo así?
motevalizadeh
1
¡Me ha funcionado solo si corro aspnet_regiis.exe -irupara las versiones v4.0.XXXXX AND v2.0.XXXXX !
1_bug
51

Tengo Windows 8 instalado en mi máquina, y la herramienta aspnet_regiis.exe tampoco me funcionó.

La solución que funcionó para mí está publicada en este enlace, en la respuesta de Neha: System.ServiceModel.Activation.HttpModule error

En todas partes se mencionó el problema de esta solución como volver a registrar aspNet mediante aspnet_regiis.exe. Pero esto no funcionó para mí.

Aunque esta es una solución válida (como se explica maravillosamente aquí)

pero no funcionó con Windows 8.

Para Windows 8, necesita las funciones de Windows y habilitar todo en ".Net Framework 3.5" y ".Net Framework 4.5 Advanced Services".

Gracias neha

scubaFun
fuente
4
Este consejo también es necesario para Windows Server 2012.
Chris O
Gracias por compartir esto. Funcionó muy bien para solucionar esto en Win 8.1
JJMpls
2
No es necesario que habilite todo, solo la activación de Http.
Marius Stănescu
Lo que dijo Marius, solo activación de Http bajo las características de .NET 3.5
C. Ridley
Tú y Neha salvaron mis pelos restantes
Karim AG
36

Hola Gracias por la pregunta; Para resolver: "No se pudo cargar el tipo 'System.ServiceModel.Activation.HttpModule' del ensamblaje 'System.ServiceModel, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089'"

En las características de Windows, compruebe todos los servicios avanzados de .NET 4 y .NET 3.5

ingrese la descripción de la imagen aquí

Al igual que Nicolas Gago, probé aspnet_regiis.exe -iru pero no funcionó. Una vez activadas las funciones, desapareció el error de pantalla amarilla. Gracias;

Catto
fuente
3
Esto funcionó para mí en Windows Server 2012 R2, ¡gracias!
NickG
Lo mismo para Windows 8. ¡Gracias!
NikitaBaksalyar
Esto arregló Win8 para mí. ¡Gracias! +1
Darbio
1
Solo tuve que habilitar la "Activación Http" ya que alojé los servicios en IIS. Funcionó para mí, gracias.
Dhanuka777
3
Funcionó para mí en Windows 10.
Justin
10

Puede instalar estas funciones en Windows Server 2012 con PowerShell usando los siguientes comandos:

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

Puede obtener una lista de funciones con el siguiente comando:

Get-WindowsFeature | Format-Table
Preben Huybrechts
fuente
6

Ok, finalmente lo tengo.

Cambiar esta línea en %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" />

A

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

Si esto no es suficiente

Agregue esta siguiente línea a Web.config

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Nicolás Gago
fuente
Cambiar ApplicationHost.config funcionó para mí con Windows Server 2016. Todas las otras respuestas no ayudaron. ¡Gracias!
Tobias
5

Desde el nodo Funciones del Administrador del servidor, también puede eliminar algunos de los subelementos de .NET Framework 3.5.1 Funciones que se instalan mediante la activación de algunas de las otras funciones.

Por ejemplo, eliminó las características de activación de WCF de la siguiente manera y nuestros sitios web volvieron:

  • [x] Características de .NET Framework 3.5.1
    • [x] .NET Framework 3.5.1
    • [] Activación WCF
      • [] Activación HTTP
      • [] Activación no HTTP

Nota: esto no requirió un reinicio para nosotros.

fordareh
fuente
4

En Windows Server 2012. Vaya a ISS -> Módulos -> Quitar ServiceModel3-0.

NikolasKraschowetz
fuente
1

Recibí este error después de que publiqué accidentalmente un sitio web en el directorio de otro sitio web. Los dos sitios web tenían diferentes versiones de .net. Lo que me solucionó fue cambiar el grupo de aplicaciones. Para hacer eso, en el administrador de IIS:

haga clic en el sitio web => Configuración avanzada ... (a la derecha) => haga clic a la derecha del Grupo de aplicaciones => debería aparecer un botón con "..." => seleccione ".NET v4.5 Classic"

Si ese grupo de aplicaciones no funciona, pruebe algunos de los demás.

quickq
fuente
0

Estamos utilizando un servicio web junto con un sitio web y cuando publicamos el sitio web devuelve el mismo error. Descubrimos que al ingresar a IIS y eliminar el ServiceModel de los módulos y el svc-Integrated de las asignaciones de controladores, el error desapareció.

Mike Donner
fuente
0

Llego tarde, espero que ayude a alguien ... Este es un problema conocido con IIS 8.0

La solución es eliminar el módulo 3.x y el controlador del administrador de IIS. Puede eliminarlos a nivel de aplicación o sitio si desea mantenerlos en applicationHost.config. Pero quería eliminarlos de applicationHost.config. siga los siguientes pasos:

En el administrador de IIS, haga clic en el nodo del nombre de la máquina. En "Vista de características", haga doble clic en "Módulos". Busque "ServiceModel" y elimínelo. Imagen 1 para resolver el error de IIS 8: no se pudo cargar el tipo 'System.ServiceModel.Activation.HttpModule'

Vuelva a la "Vista de características" del nodo del nombre de la máquina, haga doble clic en "Asignaciones de manejadores". Busque "svc-Integrated" y elimínelo. Imagen 2 para resolver el error de IIS 8: no se pudo cargar el tipo 'System.ServiceModel.Activation.HttpModule'

Taran
fuente
0

Puede cambiar la configuración de las características de IIS. Los sencillos pasos para resolverlo abriendo el símbolo del sistema con ejecutar como administrador (para Windows Server 2008) y ejecutar el comando C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe - iru esto configurará ASP.Net 4.0, luego reinicie el IIS con el comando iisreset

Referencias: 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
fuente
-1

eliminar el módulo que se identifica en el mensaje de error .Net, 1 voto en contra

En Windows Server 2012. Vaya a ISS -> Módulos -> Quitar ServiceModel3-0. (sin número funcionó para mí)

pedro
fuente
-1

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

Mukesh Depani
fuente