2012-02-12 2 views
1

私のプロジェクトの1つをデバッグしているうちに、今日奇妙な問題が発生しました。私はVS2010/windows 7ホームプレミアムを使用します。AppFabricキャッシュから取得するときにアセンブリをロードする際にエラーが発生しました

私は、Windows Server AppFabric Cacheを使用するプロジェクトを持っています。私はすべてを構成し、AppFabric構成をテストするために2つの異なるC#プロジェクト(2つのソリューション)を作成しました。プロジェクト名は "AppFabricServer"と "AppFabricClient"です。これはテストのためのものであり、命名規則は特定のものを意味するものではありません。私は "AppFabricServer"を使用してオブジェクトをAppFabric Cacheに追加し、 "AppFabricClient"プロジェクトを検索します。 "AppFabricServer"を実行した後、 "AppFabricServer"を閉じた後、エラーが発生する "System.IO.FileNotFoundException:ファイルまたはアセンブリを読み込めませんでした。 AppFabricServer "となります。どのように "AppFabricServer"プロジェクトが "AppFabricClient"プロジェクトに関連しているのか分かりません。

同じことが副詞も起こります。これは、コンピュータを再起動した後、最初に "AppFabricClient"プロジェクトを実行すると(キャッシュ書き込みモジュールもあります)、 "AppFabricServer"プロジェクトを実行できませんそれにはキャッシュ読み取りモジュールもあります)。私は同じエラーが発生します - "System.IO.FileNotFoundException:ファイルまたはアセンブリ 'AppFabricClient"を読み込めませんでした。

DataCacheのGetメソッドを呼び出すと、キャッシュからデータを取得しようとする行で例外がスローされます。

誰かが助けてくれますか?

+0

どのオブジェクトをキャッシュに保存していますか?例外のスタックトレースは何ですか? – svick

答えて

2

AppFabricはNetDataContractSerializerを使用してオブジェクトをシリアル化します。このシリアライザは、CLR型の情報をエンコードします。したがって、オブジェクトの形状が同じであっても、実際には同じアセンブリ内で同じタイプである必要があります。

したがって、AppFabricServerアセンブリからシリアル化しているオブジェクトを取り出し、AppFabricServerとAppFabricClientプログラムの両方から参照される3番目のアセンブリに配置します。そうすれば、CLRタイプの情報は両方で同じになります。

+0

うわー....それは命の恩人だった!それを感謝しなさい、Craig! – Thomas

+0

@Craigシリアライザの設定はどこに文書化されていますか? – PhilPursglove

+0

idk。私はちょうどどこかでブログの投稿で起こったことを覚えている。 –

関連する問題