The documentation around this topic is poor. I use WCF services with NetTcpBinding hosted in Windows service. The problem is that a session is dropped when it is inactive for some time. What I need is the session which is always alive. Is WCF reliable session something that can help? Or I can just play with timeout settings?
+1
A:
No, a reliable session will time out just like any other session, too. The main question really is: why on earth do you want your sessions to be "endless" ?? If you really need this, you need to crank up the timeouts on the session.
The point of a reliable session is that the caller will know about any messages that are lost. Contrary to popular belief, the reliable session cannot guarantee delivery of a message - but if a message can't be delivered, at least the caller will know about it.
Check out some of these resources for more background info:
marc_s
2010-05-26 08:32:35
Thanks for clarifying what is reliable session for.Regarding "endless" session: I have an event-driven system. When a message comes the client should call some WCF service. Messages can come each second and it is important to keep up to handle each one. Sometimes the interval between receiving a message can be much greater than one second, say one or two days. So I need some keep-alive mechanism.
bsnote
2010-05-26 09:16:13
@bsnote: why? If the interval between two messages is two days, there's really no point in having that session up and active all that time, in my opinion....
marc_s
2010-05-26 11:24:02
It's too expensive to create a channel each time a message is received in case when messages are received each second. Though I agree that there is no point in having session up when the interval is one day.
bsnote
2010-05-26 15:49:01