2012-04-03 34 views
19

私はそれについて同様の質問をしましたが、私の知る限り私の問題とは全く一致しません。ファイルまたはアセンブリをロードできませんでしたCrystalDecisions.ReportAppServer.ClientDoc

例外メッセージ:

は、ファイルまたはアセンブリをロードできませんでした。 'CrystalDecisions.ReportAppServer.ClientDocを、バージョン= 13.0.2000.0、カルチャニュートラル、PublicKeyToken = = 692fbea5521e1304' またはその依存関係の1つ。システムは、指定されたファイルを見つけることができません。

ファイルは自分のGACにあります。私はVS2010を実行している32ビットマシン(Windows 7)で開発しています。すべてが.NET4です。ターゲットホスティングマシンは64ビットのWin 2008 R2です。私のローカルマシンにはVS2010用のCRインストールがあります。ホスティングマシンはVS2010用の64ビットランタイムを備えています。私はこのWebアプリケーションの "Any CPU"モードですべてのコードをコンパイルしています。

GACでファイルが見つかりません。これはIISアプリケーションです。いくつかの権限の問題がありますか?私はIISがGACにアクセスできると思います。

何をすべきか、いくつかの提案があります。

+0

私が扱っているいくつかのサードパーティ製のDLLでは、PublicKeyTokenは32ビット版と64ビット版で異なります。あるマシンでは動作しますが、他のマシンでは動作しない場合、これは見た目の一部かもしれません。しかし、それはちょっと推測です... – David

+0

まさにその公開鍵トークンを持つファイルは、GACに記述されているとおりです。なぜ私のWebアプリケーションがそれを見つけることができないのか分かりません。 –

答えて

14

それは答えが判明ばかばかしくシンプルでしたが、なぜそれが必要なのか不思議でした。

サーバー上のIISマネージャーで、Webアプリケーションのアプリケーションプールを設定して、32ビットアセンブリを許可しないようにしました。

64ビットシステムでは、32ビットアセンブリが必要であると思われます。奇妙な。

+0

C:\ inetpub \ AdminScripts \ adsutil.vbs SET w3svc/AppPools/Enable32bitAppOnWin64 0 – ariscris

+0

私のケースはWPFアプリケーションでした。プロジェクトの環境設定で「32ビット環境設定」オプションを無効にする必要がありました。 – RonaldPaguay

3

1))

2への.NET Frameworkにクライアントプロファイルから4.0 http://msdn.microsoft.com/en-us/library/bb398202.aspx

をご.NETプロファイルを変更して、あなたの埋め込み相互運用タイプフラグをチェック

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

+0

私のすべてのプロジェクトは、すでに4.0プロファイルを使用しています。私はクライアントのプロファイルで成功したことは一度もありませんでした。なぜなら、これはどのプロジェクトのデフォルトなのでしょうか?私は明日の朝、Interopの設定を確認します。 –

+0

私のすべての参考文献はInterop Typesを埋め込まないようにすでに設定されています。 –

+0

ああ申し訳ありませんが、試してみる価値があります –

2

32ビットサポートを望む64ビットシステムについて。

64ビットシステムにデプロイされていても、参照されているすべてのアセンブリが必ずしも64ビットCrystal Reportsアセンブリであるとは限りません。さらに、Crystal Reportsアセンブリは、それらの基盤となるレガシーDLLの集合に対するほとんどのラッパーにすぎません。主に参照されるアセンブリでは、多くの32ビットDLLが必要です。エラーメッセージ "アセンブリを読み込めません"には、これらのDLLも含まれます。それらが何であるかを視覚的に確認するには、www.dependencywalker.comにアクセスして、そのIISサーバー上で問題のアセンブリに対して「依存」を実行します。

2

Deployment ServerにCrystal Report Report Run Timeダウンロードをインストールするだけで済みます。それでも問題が解決しない場合は、プロジェクトのメインフォルダにasp_clientフォルダを置きます。

+0

ランタイムをインストールする必要はありません。クラウドサーバーでWebサイトを実行していて、デスクトップにアクセスできない場合の解決策は何ですか?ユニットテストはどうですか? –

関連する問題