2010-12-07 25 views
6

Quelle est la cause de cette erreur sur la ligne ci-dessous?System.ServiceModel.Activation.HttpModule erreur

<system.web> 
    <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="fa-IR" uiCulture="fa-IR" /> 
    <compilation targetFramework="4.0" debug="true"> 
     <assemblies> <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
+0

Impossible de charger le type 'System.ServiceModel.Activation.HttpModule' de l'assemblage »System.ServiceModel, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089. Description: Une exception non gérée s'est produite lors de l'exécution de la requête Web en cours. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code. Détails d'exception: System.TypeLoadException: Impossible de charger le type 'System.ServiceModel.Activation.HttpModule' à partir de l'assembly 'System.ServiceModel, Version = 3.0.0.0, Culture = Neutre, PublicKeyToken = b77a5c561934e089' – Negar

Répondre

21

Cela se produit lorsque vous installez .Net 4 avant d'activer IIS, ou si vous vous inscrivez WCF après l'enregistrement .Net 4. Dans les deux cas, vos pools d'applications seront en cours d'exécution .Net 2.0 (qui est la version CLR requise pour .Net 3 si vous avez enregistré WCF, qui installe ASP.Net 3.5, ou la valeur par défaut si vous avez installé IIS après .Net 4)).

Il existe de nombreuses références à ceci sur le web, par ex. les blogs MSDN: http://blogs.msdn.com/b/webtopics/archive/2010/04/28/system-typeloadexception-for-system-servicemodel-activation-httpmodule-in-asp-net-4.aspx

La solution est de ré-enregistrer ASP.Net 4 du correct (32 ou 64 bits) dossier-cadre (Framework64 sur un serveur de 64 bits), en utilisant l'outil de aspnet_regiis.exe, par exemple,

aspnet_regiis.exe -iru

+0

exactement à droite. merci :) –

+0

Nous avons essayé ceci, et recevons toujours la même erreur, "Impossible de trouver l'entrypoint RegisterModule dans le module DLL C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ System.ServiceModel.Activation.dll. " – Bryan

30

Partout le problème à cette solution a été mentionné comme ré-enregistrement réSEAU en utilisant aspnet_regiis.exe. Mais cela n'a pas fonctionné pour moi.

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

mais ça n'a pas marché avec Windows 8.

Pour Windows 8 vous devez fonctionnalités de Windows et tout activer sous » NET Framework 3.5 "et" .Net Framework 4.5 Advanced Services ".

Merci Neha

+0

Merci, cela m'a aidé, j'ai été déconcerté vu que chaque recherche que j'ai couru la réponse était que aspnet_regiis le corrige, mais ce n'est pas le cas pour Windows 8 – lisburnite

+0

Sur Windows Server 2008 R2 vous n'avez pas l'option ".Net Framework 4.5 Advanced Services "Activez plutôt tous les rôles et fonctionnalités requis, puis installez/réparez le framework .NET 4.5. Voir http://stackoverflow.com/q/20784908/536546 pour plus de détails – ghostJago

+0

Merci, après beaucoup de tracas et de recherche, cela a fonctionné pour moi – devC

1

pour Windows 8 la configuration ci-dessus dans Configuration-> programmes-> fonctionnalités Windows/off permettent tout sous ".net Framework3.5" et" NET Framework 4.5 avancée Services " Fonctionne bien pour moi.

Merci Madhavi.B

0

Ce problème fait surface pour nous immédiatement après nous avons installé la sp1 (KB2506143) Windows Management Framework 3.0/3.0 PowerShell sur un ordinateur Windows Server 2008 R2 64 bits. Windows Update a également installé KB2736422, KB2756921 et KB2656411 immédiatement après.

Notre solution était de désinstaller d'abord KB2506143 (et les trois mises à jour qui l'accompagnaient), puis d'exécuter aspnet_regiis.exe -iru comme suggéré dans la réponse de Ed209 ci-dessus. Les deux étapes étaient nécessaires pour résoudre le problème. Merci, Ed209.

7

Pour Windows 8 vous devez fonctionnalités de Windows et tout sous .Net Framework 3.5 et permettent .Net Framework 4.5 Advanced Services ->Enable Everything

2

J'ai eu ce problème sur un serveur géré par un de nos clients. Je n'ai pas eu l'accès pour lancer l'outil aspnet_regiis.exe. Pour contourner ce problème, je l'ai fait ce qui suit:

  1. J'ai enlevé aspNetCompatibilityEnabled="true" de l'étiquette <serviceHostingEnvironment> dans le web.config
  2. enlevé [AspNetCompatibilityRequirements] du webservice.fichier cs

Malheureusement, cela signifie que, par exemple HttpContext.Current devient null, je pouvais réparer mon webservice en réécrivant tous mes HttpContext.Current.Server.MapPath appels à System.Web.Hosting.HostingEnvironment.MapPath

Hope this helps quelqu'un.

0
appcmd.exe set config -section:system.webServer/modules /[name='ServiceModel'].preCondition:"managedHandler,runtimeVersionv2.0" /commit:apphost 

a fonctionné pour moi