开发者

WCF Catch Asynch Exception

I have a situation I'm looking for advice on.

I have a WCF service where in some of the methods I create an object that in turn establishes a socket connection to a server. I "cache" these connection objects in a dictionary object that's "global" to my service class. Once these connections are established there is a timer associated with each of them and the timer callback sends a keep-alive message to the server at regular intervals.

The problem comes if for whatever reason the server connection gets broken. When that happens I get an unhandled exception that seems to kill the WCF service.

I am hoping there's a way I can catch these timer related exceptions and simply close the socket and remove the connection object from the cache but I'm not sure there is a way. It would seem once I leave the method that uses the connection object there's nothing to catch the asynchronous excep开发者_开发知识库tion.


You need to develop some kind of connection manager, that holds and monitor the state of each connection. the keep-alive timer is good for state tracking but you still need to check that a connection is valid before using it.

in any case, getting exception when using a faulted connection should not result in an unhandeled exception from the WCF service, you should wrap the access to the connection manager in a try-catch clauses.

Cheers,

Gilad

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜