Ouarzy's Blog

Ouarzy's Blog

Erreur IIS 'System.ServiceModel.Activation.HttpModule'

Commençons par le commencement:

Vous souhaitez exécuter un projet Web (Silverlight au hasard?) sur IIS7.

 

Votre projet web contient des services Web (RiaServices ou WCF services classique).

 

Pour autoriser votre site web à utiliser ces  services, vous devez activer

- Windows Communication Foundation HTTP Activation

- Windows Communication Foundation Non-HTTP Activation

dans l'onglet Microsoft .NET Framework 3.5.1

 

 

Sans cela, vous aurez systématiquement l'erreur standard et on ne peut plus flou: "not found".

 

Le problème:

Mais une fois que vous aurez activé ces services, surprise, votre site web ne se lancera même plus:

 


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


Description : Une exception non gérée s'est produite au moment de l'exécution de la requête Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

 

Détails de l'exception: System.TypeLoadException: Impossible de charger le type 'System.ServiceModel.Activation.HttpModule' à partir de l'assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

 

Autant dire que ça ne nous aide pas beaucoup...

 

La Cause

L'installation de la fonctionnalité ".NET 3.5.1 WCF HTTP activation" ajoute un module globale dans l'assembly 'System.ServiceModel’ pour le type 'System.ServiceModel.Activation.HttpModule'.

Puisque la version du pool d'application est en .NET 4, cette assembly est chargée depuis le dossier d'assemblies de .NET 4. Et puisque la définition de 'System.ServiceModel.Activation.HttpModule’ a été déplacé en V4 dans l'assembly 'System.ServiceModel.Activation', le chargement échoue.

 

(Source: http://blogs.iis.net/webtopics/archive/2010/04/28/system-typeloadexception-for-system-servicemodel-activation-httpmodule-in-asp-net-4.aspx)

 

La solution:

D'après la documentation Microsoft, "Cette erreur se produit si .NET Framework 4 est installé et que la fonctionnalité Activation HTTP .NET Framework 3.5WCF est activée".

 

Et on a une solution: utilisé le "ASP.NET IIS Registration Tool" pour réinstaller la version d'ASP.NET.

 

Pour cela, invite de commande (suivant votre OS X86/X64):

- %WINDIR%\Microsoft.NET\Framework>v4.0.30319\

- %WINDIR%\Microsoft.NET\Framework64>v4.0.30319\

 

Puis:

aspnet_regiis.exe /iru

 

Dans mon cas cela a toujours réglé le problème, j'espère que ça vous aidera aussi!

 

 (Source:http://msdn.microsoft.com/fr-fr/library/aa751852.aspx)



08/01/2013
0 Poster un commentaire
Ces blogs de Informatique & Internet pourraient vous intéresser