i'm currently trying to set up something like this:

  • a server side windows wcf service hangs out and listens via tcp for connections from a client side windows service.
  • when a connection is received (the client calls the CheckIn method on the service) the service obtains a callback channel via OperationContext.Current.GetCallbackChannel<T>
  • this channel is stored in a collection along with a unique key (specifically, i store the callback interface, the channel, and the key in a List<ClientConnection> where each of those is a property)
  • calls should now be able to be passed to that client service based on said unique key

this works at first, but after a while stops -- i'm no longer able to pass calls to the client. i'm assuming it's because the connection has been dropped internally and i'm trying to work with a dead connection.

that in mind, i've got the following questions:

  • how do i tell wcf i want to keep those tcp connections indefinitely (or for as long as possible)?
  • how do i check, from the client side, whether or not my connection to the server is still valid so i can drop it and check in with the server again if my connection is fried?

i can think of gimpy solutions, but I'm hoping someone here will tell me the RIGHT way.

Edit
Report