【发布时间】:2011-08-12 14:02:29
【问题描述】:
我有一种情况正在寻求建议。
我有一个 WCF 服务,在某些方法中我创建了一个对象,该对象反过来建立到服务器的套接字连接。我将这些连接对象“缓存”在对我的服务类“全局”的字典对象中。一旦建立这些连接,就会有一个与它们相关联的计时器,并且计时器回调会定期向服务器发送一条保持活动消息。
如果由于某种原因服务器连接中断,就会出现问题。发生这种情况时,我得到一个似乎会终止 WCF 服务的未处理异常。
我希望有一种方法可以捕获这些与计时器相关的异常并简单地关闭套接字并从缓存中删除连接对象,但我不确定是否有方法。一旦我离开使用连接对象的方法,似乎就没有什么可以捕获异步异常了。
【问题讨论】:
-
您能否发布一些有关异常的更多信息以及发送保持活动消息的计时器代码?你是如何连接到服务器的?你能告诉我们建立连接的代码吗?
-
您服务中的一些方法似乎是长期存在且长期运行的——您确定这是一个好的设计吗?这是单例服务吗?
标签: c# wcf sockets exception asynchronous