views:

162

answers:

2

In WCF, does a timeout on a request-response operation fault the channel at the client's end?

If a server times out when sending a response, is the channel faulted at the server's end?

+2  A: 

Yes, a timeout will fault the channel - and there's always only one channel linking a client and a server - the server doesn't have a channel of its own...

You basically have:

+-----------+                       +-----------+
|           |_______________________|           |
|  Client   |     The Channel       |  Server   |
|           |-----------------------|           |
+-----------+                       +-----------+

There's really only one channel which connects the two bits. As for timeouts - if both ends define a different value for the same timeout, the smaller value will "win" and become relevant - the higher value (on the other end) isn't taken into account.

marc_s
Perhaps it's just how I've expressed it, but I meant from the perspective of each system. If a timeout is experienced from either end of the channel, will the channel be faulted for the "timed out" party in both cases?
Programming Hero
yes - the smaller values for each timeout will "win" - if you have 100 years timeout on your client, but your server is set to 5 seconds - the channel between the two will fault after 5 seconds.
marc_s
Your ASCII art is hideous, yet enlightening. Thanks.
Programming Hero
+1  A: 

Correct, the timeout will fault the channel. You can set the max timeout time on both the client and the server side.

ChrisNel52
and the smaller of the two values will "win"
marc_s