![](/img/trans.png)
[英]FaultException<T>() exception thrown by the service is not caught by the client catch(FaultException<T>)
[英]FaultException not thrown at WCF client. Instead I am getting Communication Exception
我有一個簡單的WCF服務器,我拋出FaultException<InvalidOperationException>
但在客戶端我只得到通信異常,錯誤如下。
套接字連接已中止。 這可能是由於處理消息的錯誤或遠程主機超出接收超時或基礎網絡資源問題引起的。 本地套接字超時為'00:00:59.8080000'。
請參閱下面的代碼,如果缺少某些內容,請提供幫助並告訴我。
服務
[OperationContract]
[FaultContract(typeof(InvalidOperationException))]
bool DoWork()
服務實現代碼
public bool DoWork()
{var invalidOperationException =
new InvalidOperationException(
"Can't dowork", exception);
// throw InvalidOperationException as an FaultException to the service consumer.
throw new FaultException<InvalidOperationException>(
invalidOperationException,
exception.Message,
new FaultCode("Test Message"),
"DoWork");
}
客戶端代碼。
try
{
var service = new ServiceClient();
var result = service.DoWork();
}
catch (TimeoutException timeoutException)
{
}
catch (FaultException<InvalidOperationException> invalidOperationException)
{
}
catch (FaultException unknownFault)
{
}
catch (CommunicationException communicationException)
{
}
問題是提供的內部異常
var invalidOperationException =
new InvalidOperationException(
"Can't dowork", exception);
如果你刪除它將工作。
我的猜測是它與嘗試序列化CLR異常有關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.