3

WCFサービスで例外処理を実装しようとしています。この例外をクライアントにスローして、記録して処理できるようにしたいと考えています。

私が書いたコードが正しいか間違っているかわかりません。これは、「faultexception was unhandled by user code」というメッセージしか表示されません。クライアントで例外を処理するにはどうすればよいですか?

WCF サービスのコード:

try
{

}
catch (FaultException fex)
{
    throw fex;
}
catch (Exception ex)
{
    throw ex;
} 

クライアントのコード:

try
{

}
catch (FaultException fex)
{
    Logger.AddExceptionToDb(fex);
}
catch (Exception ex)
{
    Logger.AddExceptionToDb(ex);
}
4

1 に答える 1

5

[FaultContract(YourFaultClass)] 属性を、エラー例外をスローするメソッドに適用する必要があります。

   [OperationContract]
   [FaultContract(typeof(YourFaultClass))]
   void Foo(int par1);

サービスからスローする方法:

throw new FaultException<YourFaultClass>(new YourFaultClass());

詳細については、http: //msdn.microsoft.com/en-us/library/cc949036.aspxをご覧ください。

于 2013-05-13T11:44:19.213 に答える