使用WCF的系统中的CommunicationExceptions有什么处理?我有一个客户端使用SOAP通过WCF与服务器通信 - 所有异步通信。偶尔我会在我的脸上抛出一个CommunicationException - 没有看到任何可重现的模式,说明为什么以及何时发生这种情况。
然而;我能够继续运行程序,因为这只是第一次机会(?)异常。因此,我假设我不必担心这一点,并且它是在幕后处理的?但是我仍然担心,如果有人可以在这方面给我启发,那就太好了。我应该在每个通过WCF调用函数的地方尝试捕获CommunicationException吗?
答案 0 :(得分:2)
CommunicationException
是所有WCF相关问题的基本类型,并且可以在多种情况下出现在客户端:
如果您经常弹出这些内容,则需要更密切地检查它们是否真的CommunicationException
或某些派生类型(FaultException
还有更多)。
FaultException
表示服务器上的某些内容出错 - 如果服务器收到请求,它将被抛出,但无法正确处理并返回异常或SOAP错误。
您是否注意到该异常的消息是什么,以及是否有InnerException
?
马克
答案 1 :(得分:0)
您可以尝试这样的事情:
try
{
...
client.Close();
}
catch (CommunicationException e)
{
...
client.Abort();
}
catch (TimeoutException e)
{
...
client.Abort();
}
catch (Exception e)
{
...
client.Abort();
throw;
}