В WCF ли тайм-аут неисправен канал?
В WCF истекает ли время ожидания операции запрос-ответ каналом на стороне клиента?
Если при отправке ответа истекло время ожидания сервера, произошел ли сбой канала на конце сервера?
2 ответа
Да, тайм-аут повредит канал - и всегда есть только один канал, связывающий клиента и сервер - у сервера нет собственного канала...
Вы в основном имеете:
+-----------+ +-----------+
| |_______________________| |
| Client | The Channel | Server |
| |-----------------------| |
+-----------+ +-----------+
Там действительно только один канал, который соединяет два бита. Что касается тайм-аутов - если оба конца определяют разные значения для одного и того же тайм-аута, то меньшее значение "выиграет" и станет релевантным - более высокое значение (на другом конце) не учитывается.
Правильно, тайм-аут приведет к неисправности канала. Вы можете установить максимальное время ожидания как на стороне клиента, так и на стороне сервера.
Это зависит от того, какой тайм-аут.
Если вы нажмете SendTimeout
или ReceiveTimeout
вашей привязки (в моем случае NetTcpBinding
), тогда да, канал будет неисправен.
НО, если вы нажмете OperationTimeout
вашего Сервиса (в моем случае DuplexChannel), то вы просто получите TimeoutException
и канал НЕ будет неисправен.