gpt4 book ai didi

c# - 导致WCF代理出错的情况有哪些?

转载 作者:太空宇宙 更新时间:2023-11-03 11:54:10 24 4
gpt4 key购买 nike

我想知道 WCF 代理(由 vs2008 或 svcutil 生成)在什么情况下出现故障(故障状态)?这样我就可以重新创建新实例并避免使用有故障的实例。

目前我正在处理 TimeoutException、FaultException、CommunicationObjectAbortedException

            try
{
client.Method1(args);
}
catch (TimeoutException)
{
client.Abort();
ReCreate();
}
catch (FaultException)
{
client.Abort();
ReCreate();
}
catch (CommunicationObjectAbortedException)
{
client.Abort();
ReCreate();
}

我想我可以避免所有这些类型并只处理父 CommunicationException,这就足够了吗?我需要评论

最佳答案

服务器端未处理并转换为 FaultException 的任何未捕获异常或 FaultException<T>可能会使您的 channel 出错。在 per-call 场景或单向场景中,您通常并不真正关心 channel 出现故障,但在基于 session 的场景中,您肯定会关心!

你最好的办法是真正尝试在服务器端捕获所有异常,或者只是抑制它们(将它们记录在服务器上并且不做任何事情),或者在 FaultException 中将它们返回给客户端。方式。

为此,您的服务实现还应实现 IErrorHandler允许您执行此操作的接口(interface) - 捕获所有异常并记录+抑制它们,或将它们转换为 SOAP 错误。

马克

关于c# - 导致WCF代理出错的情况有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1184704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com