I have my own wcf service using net tcp duplex callback
on the client side, I listen to a failed event on Channel and ChennelFactory. when the channel is faulty, the client will recreate the channel and re-subscribe.
on the server side, I save the callback channel and save the channel link by invoking OperationContext.Current.Channel so that I can listen for the failed and closed event on this channel. If an error occurs, the server will delete this subscriber.
This works most of the time until recently, I observed an unexpected behavior: the callback channel is erroneous on the server, but the channel seems to be on the client side, this leads to the fact that the client does not overwrite while the server is already deleted, the subscriber and the client will not receive any callback.
I thought about duplex communication, if one of them found an error, the duplex channel should be faulty.
A reliable session is enabled, and the timeout is very long (2 hours) (maybe this can lead to the client end not detecting the error quickly enough?)
Can anyone explain why this is happening?
Another question is why is it still a mistake? I have 40 clients, but the server detected a random client that would be malfunctioning at any time.
source share