gpt4 book ai didi

.net - 我应该如何重新打开失败的 WCF channel ?

转载 作者:行者123 更新时间:2023-12-04 14:42:09 25 4
gpt4 key购买 nike

我正在使用客户端代理对象来访问 WCF channel 。要访问任何服务方法,调用都包含在 try-catch 中以确保明确定义的行为。

但是,一旦 channel 因任何原因无法使用,我想重新打开它。这样做的正确方法是什么?我看到两个问题:

<强>1。何时检查

  • 就在访问方法中的 try/catch 之前
  • 通过 channel 的 Faulted、Aborted 等事件

<强>2。如何执行重新打开

这让我很困扰。如果我正确理解情况,我必须分别处理每个可能的状态。另外,如果同时收到两个方法调用,我可能必须避免线程问题,例如打开 channel 两次(仅适用于前一点的选项 A)。

我记得在重新打开 channel 时需要考虑很多事情。需要区分 Faulted 和 Closed(和 Closing),操作顺序很重要,并且某些操作会使对象无效(?)。

好像这还不够麻烦,MSDN 显然提供了错误的示例代码(缺失案例、草率地处理边缘条件等)所以我根本不能依赖它。

最佳答案

无法重新打开 channel 。一旦 channel 处于 Faulted 状态,唯一有效的状态转换是调用 Abort。中止当前 channel /代理后,您可以启动新 channel 并建立与服务器的新连接。

关于.net - 我应该如何重新打开失败的 WCF channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7011598/

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