背景: Microsoft Enterprise Library WCF 例外処理を使用している WCF プロジェクトがあります。
最近、操作とデータ コントラクトを、comanynamespace.xxx.WCF.Utilities という別のプロジェクト (.net アセンブリ) に移動することにしました。操作とデータ コントラクトを移動した後、新しいアセンブリを反映するように faultContractType 名前空間を変更しました。
VS2010 で Web サービスを起動すると、次のエラーが表示されます。
タイプ ExceptionPolicyImpl、キー「WCF Exception Shielding」のインスタンスを取得しようとしているときにアクティベーション エラーが発生しました
私は試しました:両方のプロジェクトに同じ参照が存在することを確認し、両方のプロジェクトが.net 4(クライアントモードなし)で実行されていることを確認するなど、どちらも問題の解決には役立ちませんでした。
最後に、Service Fault クラスを Web サービス プロジェクトにコピーして戻し、web.config の名前空間をローカルの名前空間を指すように変更しました。
faultContractType="comanynamespace.xxx.WCF.Utilities.ServiceFault、comanynamespace.xxx.WCF.Utilities.Services"
に:
faultContractType="comanynamespace.xxx.Web.Services.ServiceFault, comanynamespace.xxx.Web.Services"
これでエラーは解決しますが、両方の場所にサービス障害データ コントラクトが必要になりました。
Microsoft EL WCF 例外処理を使用して、別の .net アセンブリでサービス エラー (データ コントラクト) を使用できない理由を知っている人はいますか?