Время ожидания в WCF - PullRequest
       42

Время ожидания в WCF

9 голосов
/ 27 августа 2009

У меня проблема с тайм-аутом в WCF.

Следующая ошибка:

{"Время ожидания канала запроса при ожидании ответа после 00: 00: 59.9843744. Увеличьте значение тайм-аута, переданное на вызов Request, или увеличьте значение SendTimeout в Binding. Время, выделенное для этой операции возможно, это часть более длительного тайм-аута. "}

После поиска в гугле я нашел решение

с этого сайта

http://social.msdn.microsoft.com/Forums/en-US/peertopeer/thread/38306972-3128-4f0c-937b-5d162d4d8e74

Итак, я изменил свой файл app.config соответственно

<behavior name="ContactServiceBehaviour">
  <serviceMetadata httpGetEnabled="true" />
  <dataContractSerializer maxItemsInObjectGraph="1000000000"/>
  <serviceDebug includeExceptionDetailInFaults="true" />
  <serviceThrottling    maxConcurrentCalls="100"
                      maxConcurrentSessions="100"
                      maxConcurrentInstances="100"/>
</behavior>

Какое решение?

Ответы [ 2 ]

18 голосов
/ 27 августа 2009

Сообщение на форуме, о котором вы упоминаете, - это красная сельдь. В сообщении об ошибке четко указывается, что вам необходимо увеличить свойство timeout в клиенте и службе WCF. (если вы измените его в сервисе, я обнаружил, что клиент не всегда забирает его при обновлении)

В Visual Studio перейдите в меню Инструменты, там вы найдете «Редактор конфигурации службы WCF». Загрузите ваши проекты web.config и определите новый Binding для вашего сервиса.

Изменяемым параметром является значение SendTimeout. По умолчанию это 60 секунд.

<system.serviceModel>
<bindings>
  <basicHttpBinding>
    <binding name="WCFBinding" sendTimeout="00:02:00">
    </binding>
  </basicHttpBinding>
</bindings>
0 голосов
/ 26 сентября 2011

Если вы хотите обработать тайм-аут, вы можете заключить вызов на стороне клиента службы WCF в блок try / catch.

Здесь есть хитрость: если у вас нет отладчика, тайм-аут вызовет выполнение блока catch. Однако, если у вас есть отладчик, отладчик перехватывает ошибку, прежде чем попасть в блок catch.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...