В WCF ли тайм-аут неисправен канал?

В WCF истекает ли время ожидания операции запрос-ответ каналом на стороне клиента?

Если при отправке ответа истекло время ожидания сервера, произошел ли сбой канала на конце сервера?

2 ответа

Решение

Да, тайм-аут повредит канал - и всегда есть только один канал, связывающий клиента и сервер - у сервера нет собственного канала...

Вы в основном имеете:

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

Там действительно только один канал, который соединяет два бита. Что касается тайм-аутов - если оба конца определяют разные значения для одного и того же тайм-аута, то меньшее значение "выиграет" и станет релевантным - более высокое значение (на другом конце) не учитывается.

Правильно, тайм-аут приведет к неисправности канала. Вы можете установить максимальное время ожидания как на стороне клиента, так и на стороне сервера.

Это зависит от того, какой тайм-аут.

Если вы нажмете SendTimeout или ReceiveTimeout вашей привязки (в моем случае NetTcpBinding), тогда да, канал будет неисправен.

НО, если вы нажмете OperationTimeout вашего Сервиса (в моем случае DuplexChannel), то вы просто получите TimeoutExceptionи канал НЕ будет неисправен.

Другие вопросы по тегам