web-dev-qa-db-fra.com

Impossible de charger le fichier ou l'assemblage CrystalDecisions.ReportAppServer.ClientDoc

J'ai regardé des questions similaires sur SO, mais rien ne correspond tout à fait à mon problème pour autant que je sache.

Le message d'exception:

Impossible de charger le fichier ou l'assembly 'CrystalDecisions.ReportAppServer.ClientDoc, Version = 13.0.2000.0, Culture = neutral, PublicKeyToken = 692fbea5521e1304' ou l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.

Le fichier est dans mon GAC. Je développe sur une machine 32 bits (Windows 7) exécutant VS2010, tout est .NET4. La machine d'hébergement cible est Win 2008 R2 64 bits. Ma machine locale a l'installation CR pour VS2010; la machine d'hébergement a les temps d'exécution 64 bits pour VS2010. Je compile tout mon code en mode "Any CPU" pour cette application web.

Il me souffle qu'il ne peut pas trouver le fichier dans le GAC. Il s'agit d'une application IIS; y a-t-il une sorte de problème d'autorisation? Je pense que IIS aurait accès au GAC.

Quelques suggestions de mesures à prendre seraient appréciées.

22
Jeremy Holovacs

Il s'avère que la réponse était ridiculement simple, mais mystifiante quant à la raison pour laquelle elle était nécessaire.

Dans le gestionnaire IIS sur le serveur, j'ai défini le pool d'applications pour mon application Web pour ne pas autoriser les assemblys 32 bits.

Il semble que cela suppose, sur un système 64 bits, que vous devez vouloir l'assemblage 32 bits. Bizarre.

14
Jeremy Holovacs

1) Modifiez votre profil .net du profil client en .Net Framework 4.0 http://msdn.Microsoft.com/en-us/library/bb398202.aspx

2) Vérifiez votre drapeau des types d'interopérabilité intégrés

Embed Interop Types flag http://weblogs.asp.net/cazzu/archive/2011/03/11/check-your-embed-interop-types-flag-when-doing-visual-studio-extensibility-work.aspx

3
Micah Armantrout

Vous devez simplement installer Crystal Report Report Run Time téléchargements sur Deployment Server. Si le problème persiste, placez le dossier check asp_client dans le dossier principal de votre projet.

2
ZahidKakar

Concernant le système 64 bits voulant un support 32 bits. Je ne trouve pas ça si bizarre:

Bien que déployé sur un système 64 bits, cela ne signifie pas que tous les assemblys référencés sont nécessairement des assemblages Crystal Reports 64 bits. De plus, les assemblys Crystal Reports ne sont en général que des wrappers pour une collection de DLL héritées sur lesquelles ils sont basés. De nombreuses DLL 32 bits sont requises par l'assembly principalement référencé. Le message d'erreur "ne peut pas charger l'assembly" implique également ces DLL. Pour voir visuellement ce que c'est, allez sur www.dependencywalker.com et exécutez 'Depends' sur l'assembly en question, directement sur ce serveur IIS.

2