WCF捕获异步异常

本文关键字:异常 异步 WCF | 更新日期: 2023-09-27 17:52:47

我有个问题想咨询一下。

我有一个WCF服务,在其中的一些方法中,我创建了一个对象,该对象反过来建立了到服务器的套接字连接。我将这些连接对象"缓存"在一个字典对象中,该对象对我的服务类来说是"全局的"。一旦这些连接建立起来,每个连接都有一个计时器,计时器回调会定期向服务器发送保持活动消息。

如果由于某种原因服务器连接断开,问题就出现了。当发生这种情况时,我得到一个未处理的异常,似乎会杀死WCF服务。

我希望有一种方法,我可以捕获这些定时器相关的异常,只需关闭套接字,并从缓存中删除连接对象,但我不确定有一种方法。似乎一旦我离开了使用连接对象的方法,就没有什么可以捕获异步异常了。

WCF捕获异步异常

您需要开发某种连接管理器,它保存并监视每个连接的状态。keep-alive定时器很适合状态跟踪,但在使用连接之前,您仍然需要检查连接是否有效。

在任何情况下,在使用错误连接时获得异常不应该导致来自WCF服务的未处理异常,您应该将对连接管理器的访问包装在try-catch子句中。

欢呼,

Gilad