Клиент тайм-аута WCF против сервера - PullRequest
10 голосов
/ 28 июля 2010

Может кто-нибудь объяснить мне, в чем разница между настройкой тайм-аута на сервере vesus на клиенте? Например, что произойдет, если клиент установит sendTimeout на 5 минут, в то время как конфигурация на сервере настроит его на 1 минуту? Клиент преобладает, так как он инициирует связь?

Спасибо за вашу помощь!

Ответы [ 2 ]

1 голос
/ 22 декабря 2010

Я думаю, что получил, взгляните на http://omsite.blogspot.com/2008/04/playing-with-wcf-nettcpbinding-timeouts.html.

Когда клиент инициирует вызов к серверу, действуют стороны sendTimeout на стороне клиента и receiveTimeout на стороне сервера. Клиент должен отправить (или отправить) все данные, прежде чем истечет установленный на сервере receiveTimeout. Сервер должен завершить свою работу и вернуть результаты обратно клиенту до истечения срока действия установленного на клиенте sendTimeout.

Если роли поменялись местами, то есть сервер открывает связь с клиентом (как при обратном вызове и т. Д.), То вступают в игру sendTimeout на сервере и receiveTimeout на клиенте.

Существует также OpenTimeout и CloseTimeout, которые управляют канальным соединением, устанавливающим тайм-ауты и работают на более низких уровнях канала (линейные разъемы и т. Д.)

0 голосов
/ 06 июля 2017

В тестах сценарий, который вы задали.Тайм-аут запроса составляет 5 минут, который был определен в клиенте

На тайм-аутах на стороне клиента

SendTimeout - используется для инициализацииOperationTimeout, который управляет всем процессом отправки сообщения, включая получение ответного сообщения для операции службы запроса / ответа.Этот тайм-аут также применяется при отправке ответных сообщений из метода контракта обратного вызова.

ReceiveTimeout - не используется

По тайм-аутам на стороне обслуживания

SendTimeout такие же, как на клиенте

ReceiveTimeout - используется уровнем Service Framework для инициализации тайм-аута простоя сеанса, который определяет, как долгосеанс может быть бездействующим до истечения времени ожидания.

См. https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/configuring-timeout-values-on-a-binding

...