Impossible de charger le type 'System.ServiceModel.Activation.HttpModule' à partir de l'assembly 'System.ServiceModel

88

J'exécute mon projet Web dans IIS.

C'est une application de cadre 4.0.

J'ai un Service.svc et j'obtiens cette erreur lorsque j'exécute mon application.

"Impossible de charger le type 'System.ServiceModel.Activation.HttpModule' à partir de l'assembly 'System.ServiceModel, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089'"

J'ai essayé ceci -> aspnet_regiis.exe -iru que j'ai trouvé dans de nombreux forums et cela n'a pas résolu mon problème.

Quelqu'un connaît-il une autre méthode?

Nicolas Gago
la source

Réponses:

156

Essayez avec

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

Lorsque plusieurs versions du .NET Framework s'exécutent côte à côte sur un seul ordinateur, la version ASP.NET ISAPI mappée à une application ASP.NET détermine la version du Common Language Runtime (CLR) utilisée pour l'application.

La commande ci-dessus installe la version d'ASP.NET associée à Aspnet_regiis.exe et enregistre uniquement ASP.NET dans IIS.

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

Kishan Zunjare
la source
1
nous pouvons également utiliser CMD: en entrant l'adresse, cd \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 puis en l'installant par: aspnet_regiis.exe -iru command, ensuite, il serait préférable de redémarrer ISS par iisreset
Harry Sarshogh
2
Cela s'avère toujours utile aujourd'hui. J'aurais espéré que MS aurait résolu ce problème. Dans mon cas, nous avons déjà une application IIS en cours d'exécution utilisant le framework ASP.net 4.0. Bien que ne sachant pas exactement ce que le client a fait à part la mise à niveau vers 4.5.1 et un tas d'autres mises à jour, il est devenu nécessaire de réexécuter cette commande, ce à quoi nos ingénieurs de support n'ont pas pensé car ils n'ont pas eu à faire pendant un certain temps.
ebol2000
Merci d'avoir répondu. cela, cependant, n'a pas fonctionné pour moi. mais tout activer sous «.Net Framework 3.5» et «.Net Framework 4.5» dans les fonctionnalités de Windows (comme mentionné dans les réponses ci-dessous) a fait l'affaire.
Ozgur Bar
J'ai un serveur Windows 2008 x64 R2 et cela a bien fonctionné, mais après un mois, j'ai eu cette erreur, j'ai trouvé ce message et exécutez cette commande sur mon serveur et cela a résolu mon problème. Je n'installe ou ne met jamais à jour quoi que ce soit sur mon serveur, maintenant la question est: pourquoi est-ce arrivé?, Est-ce normal ou est-ce un type de piratage ou quelque chose comme ça?
motevalizadeh
1
Cela n'a fonctionné pour moi que si je cours aspnet_regiis.exe -irupour les versions v4.0.XXXXX AND v2.0.XXXXX !
1_bug
49

J'ai Windows 8 installé sur ma machine et l'outil aspnet_regiis.exe ne fonctionnait pas non plus pour moi.

La solution qui a fonctionné pour moi est postée sur ce lien, sur la réponse de Neha: erreur System.ServiceModel.Activation.HttpModule

Partout, le problème de cette solution a été mentionné comme la réenregistrement d'aspNet en utilisant aspnet_regiis.exe. Mais cela n'a pas fonctionné pour moi.

Bien que ce soit une solution valable (comme expliqué magnifiquement ici)

mais cela ne fonctionnait pas avec Windows 8.

Pour Windows 8, vous devez disposer des fonctionnalités Windows et tout activer sous ".Net Framework 3.5" et ".Net Framework 4.5 Advanced Services".

Merci Neha

plongée sous-marine
la source
4
Ce conseil est également nécessaire pour Windows Server 2012.
Chris O
Merci d'avoir transmis ceci. Fonctionne très bien pour résoudre ce problème sur Win 8.1
JJMpls
2
Vous n'avez pas besoin de tout activer, juste l'activation Http!
Marius Stănescu
Ce que Marius a dit, juste l'activation Http sous .NET 3.5 Fonctionnalités
C. Ridley
You & Neha a sauvé mes cheveux restants
Karim AG
36

Bonjour Merci pour la question; Pour résoudre: "Impossible de charger le type 'System.ServiceModel.Activation.HttpModule' à partir de l'assembly 'System.ServiceModel, Version = 3.0.0.0, Culture = neutre, PublicKeyToken = b77a5c561934e089'"

Dans les fonctionnalités Windows, vérifiez tout pour les services avancés .NET 4 et .NET 3.5

entrez la description de l'image ici

Tout comme Nicolas Gago, j'ai essayé aspnet_regiis.exe -iru mais cela n'a pas fonctionné. Une fois les fonctionnalités activées, l'erreur d'écran jaune a disparu. Merci;

Catto
la source
3
Cela a fonctionné pour moi dans Windows Server 2012 R2 - merci!
NickG
Idem pour Windows 8. Merci!
NikitaBaksalyar
Cela a corrigé Win8 pour moi. Merci! +1
Darbio
1
Je n'ai eu qu'à activer "Activation Http" car j'ai hébergé les services dans IIS. Cela a fonctionné pour moi, merci.
Dhanuka777
3
A travaillé pour moi dans Windows 10.
Justin
10

Vous pouvez installer ces fonctionnalités sur Windows Server 2012 avec PowerShell à l'aide des commandes suivantes:

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

Vous pouvez obtenir une liste de fonctionnalités avec la commande suivante:

Get-WindowsFeature | Format-Table
Preben Huybrechts
la source
6

Ok, enfin compris.

Changer cette ligne 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" />

À

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

Si cela ne suffit pas

Ajoutez cette ligne suivante au Web.config

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Nicolas Gago
la source
Changer le ApplicationHost.config a fonctionné pour moi avec Windows Server 2016. Toutes les autres réponses n'ont pas aidé. Merci!
Tobias
5

À partir du nœud Fonctionnalités du Gestionnaire de serveur, vous pouvez également supprimer certains des sous-éléments sous les fonctionnalités .NET Framework 3.5.1 qui sont installés par l'activation de certains des autres rôles.

Par exemple, nous avons supprimé les fonctionnalités d'activation WCF comme suit et nos sites Web sont revenus:

  • [x] Fonctionnalités du .NET Framework 3.5.1
    • [x] .NET Framework 3.5.1
    • [] Activation WCF
      • [] Activation HTTP
      • [] Activation non HTTP

Remarque: cela n'a pas nécessité de redémarrage pour nous.

fordareh
la source
4

Dans Windows Server 2012. Allez dans ISS -> Modules -> Supprimez le ServiceModel3-0.

NikolasKraschowetz
la source
1

J'ai eu cette erreur après avoir accidentellement publié un site Web dans le répertoire d'un autre site Web. Les deux sites Web avaient des versions différentes de .net. Ce qui a résolu le problème pour moi, c'est de changer le pool d'applications. Pour ce faire, dans le gestionnaire IIS:

cliquez sur le site Web => Paramètres avancés ... (à droite) => cliquez à droite du pool d'applications => un bouton avec "..." devrait apparaître => sélectionnez ".NET v4.5 Classic"

Si ce pool d'applications ne fonctionne pas, essayez quelques-uns des autres.

quickq
la source
0

Nous utilisons un service Web à côté d'un site Web et lorsque nous publions le site Web, il renvoie cette erreur. Nous avons découvert qu'en accédant à IIS et en supprimant le ServiceModel des modules et le svc-Integrated des Handler Mappings, l'erreur a disparu.

Mike Donner
la source
0

Je suis en retard, j'espère que cela aidera quelqu'un ... Il s'agit d'un problème connu avec IIS 8.0

La solution consiste à supprimer le module 3.x et le gestionnaire du gestionnaire IIS. Vous pouvez les supprimer au niveau de l'application ou du site si vous souhaitez les conserver dans applicationHost.config. Mais je voulais les supprimer de applicationHost.config. suivez les étapes suivantes:

Dans le gestionnaire IIS, cliquez sur le nœud du nom de l'ordinateur. Dans «Affichage des fonctionnalités», double-cliquez sur «Modules». Recherchez «ServiceModel» et supprimez-le. Image 1 pour l'erreur Solve IIS 8: impossible de charger le type 'System.ServiceModel.Activation.HttpModule'

Revenez à la «Vue des fonctionnalités» du nœud de nom de la machine, double-cliquez sur «Mappages de gestionnaires». Recherchez «svc-Integrated» et supprimez-le. Image 2 pour l'erreur Solve IIS 8: impossible de charger le type «System.ServiceModel.Activation.HttpModule»

Taran
la source
0

Vous pouvez modifier les paramètres des fonctionnalités IIS.Les étapes faciles à résoudre en ouvrant l'invite de commande avec exécuter en tant qu'administrateur (pour Windows Server 2008) et exécutez la commande C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe - iru cela va configurer ASP.Net 4.0, puis réinitialiser l'IIS par la commande iisreset

Références: 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
la source
-1

supprimer le module identifié dans le message d'erreur .Net, 1 vote négatif

Dans Windows Server 2012. Allez dans ISS -> Modules -> Supprimez le ServiceModel3-0. (sans numéro a fonctionné pour moi)

peter
la source
-1

démarrer-> Exécuter -> c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -iru

Mukesh Depani
la source