c# ChannelFactory:如何在 FaultException|TimeoutException 后重新连接/重新打开连接?

问题描述 投票:0回答:1

我正在使用带有 netTcpBinding 的 ChannelFactory。有时我会遇到异常,在这些异常之后我无法再使用该通道,因为它处于故障状态。

我应该怎么做才能重新建立连接?我应该调用 abort(),然后关闭/打开。 或 Close(),然后 open(),或者我应该只使用一个新对象,如:

myPublicChannel = this.ChannelFactory.CreateChannel();

我应该只在我的 catch 块中重新打开连接吗?我是否需要一个特殊的锁定机制,因为其他线程也可以使用这个通道,然后尝试同时重新建立连接。

非常感谢您提前的回答!

谢谢你的回答。这是我发现的链接,可能对其他有相同问题/疑问的人有帮助:

链接

c# .net wcf
1个回答
1
投票

我实际上会关闭并将其设置为 null 以处理连接中的任何内容然后使用打开,我之前编写了一些 Web 服务,其中不处理 ChannelFactory 导致了一些内存泄漏和其他问题。

© www.soinside.com 2019 - 2024. All rights reserved.