WCF捕获异步异常

时间:2011-04-25 20:39:47

标签: c# wcf sockets exception asynchronous

我有一种情况,我正在寻求建议。

我有一个WCF服务,在某些方法中,我创建了一个对象,该对象又建立了与服务器的套接字连接。我将这些连接对象“缓存”在我的服务类“全局”的字典对象中。一旦建立了这些连接,就会有一个与它们中的每一个相关联的计时器,并且计时器回调会定期向服务器发送保持活动消息。

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

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

1 个答案:

答案 0 :(得分:0)

您需要开发某种连接管理器,用于保存和监视每个连接的状态。保持活动计时器适用于状态跟踪,但在使用之前仍需要检查连接是否有效。

在任何情况下,在使用出现故障的连接时获取异常不应导致WCF服务的未经处理的异常,您应该在try-catch子句中包含对连接管理器的访问。

干杯,

吉拉德