J'ai rencontré un problème avec le service de repos de WCF. Je reçois: p>
ne pouvait pas charger le type 'system.servicemodel.activation.httphandler' de l'assemblage 'System.ServiceModler, version = 3.0.0.0, culture = neutre, PublickeyToken = B77A5C561934E089'. P>
Lorsque vous courez à l'intérieur de l'IIS dans un ASP.NET 4.0 AppPool. P>
Le problème semble se produire que si: p>
courir dans Cassini - aucun problème, cela fonctionne correctement. Courir avec la compatibilité ASP.NET off - pas de problème ça marche. P>
Il apparaît que c'est une sorte de conflit de version de gestionnaire essayant d'instancier la mauvaise version du gestionnaire qui tente à son tour de charger une version plus ancienne de System.ServiceModel, mais je n'ai pas été capable de tracer cela. p>
Quelqu'un a vu quelque chose comme ça avant et avoir des idées comment suivre cela plus loin? p>
J'ai regardé dans ApplicationHost.Config et les fichiers Master Web.Config pour les références System.ServiceModel et HTTPHANDLER, mais pas de chance. Là-bas. P>
+++ rick --- p>
3 Réponses :
Ainsi, comme prévu, cela s'est avéré être un conflit de version dans les mappages de gestionnaire par défaut dans ApplicationHost.Config. Spécifiquement IIS a des mappages pour ASP.NET 2.0 et ASP.NET 4.0 Références spécifiques au gestionnaire d'activation de service (et Module) et les références 2.0 n'étaient pas limitées par une condition préalable spécifique.
Pour corriger le problème ci-dessus, je devais changer (à la racine du système dans ApplicationHost.Config): p> à: p> Notez le RuntimeVersion explicite2.0. Il existe des cartes supplémentaires * .svc dans la même section pour le RuntimeVersion4.0 qui déclenche ensuite les roulements appropriés. P> Selon Microsoft, cette situation peut survenir lorsque certains outils plus anciens (je devine des outils d'azur ?? ?) sont installés qui n'enregistrent pas correctement la version d'exécution. p> problème résolu. p> p>
Merci! Pour la simplicité de la gestion des versions entre serveurs, je viens de modifier mon fichier web.config à l'application Web .NET 4.0 pour dire
Indiquez votre commande de commande Visual Studio 2010 ou parcourir "C: \ Windows \ Microsoft.net \ Framework \ v4.0.30319". Et exécutez la commande suivante à partir de l'invite de commande: p>
aspnet_regiis.exe -iru p>
Cela enregistrera la dernière version .NET. Assurez-vous également que votre pool d'applications exécute la dernière version de .NET P>
Il y a un moyen de plus si tout cela ne fonctionne pas. (Étrange)
Nous utilisions Windows Server 2008 R2 SP1 avec IIS 7.5.7600 P>
Après avoir enregistré le dernier cadre tel que indiqué dans la réponse ci-dessus, P>
Vous devez avoir la cartographie de l'ajout du gestionnaire À V.4.0 Assemblée manuellement sur web.config et supprimer "servicemodel" des modules. p> plus ici p> p>
Je suis aussi dans ce problème exact et je ne peux pas trouver un moyen de contourner. Pouvez-vous partager votre gestionnaire avec lequel vous utilisez * .svc dans web.config? Je suppose que vous exécutez IIS7 en mode intégré?