Помогите с расшифровкой ошибок тайм-аута WCF - PullRequest
1 голос
/ 07 октября 2010

У меня есть многопоточная служба Windows (от сотен до тысяч одновременно). Эти потоки сканируют разные машины и вызывают веб-службы WCF одного веб-сервера. В последнее время я начал получать ошибки тайм-аута. То, что меня смущает, это

Время ожидания канала запроса истекло жду ответа после 00: 02: 41,8806080 . Увеличьте значение тайм-аута, переданное вызову Запрос или увеличение SendTimeout значение на привязке. Время отведенный для этой операции может иметь был частью более длительного тайм-аута. Трассировка стека сервера: .... Исключение переброшено в [0]: ... HTTP-запрос до 'http://XXX/XXX/MonitorService.svc' превысил выделенное время ожидания 00: 10: 00. Время, отведенное для этой операции, могло быть частью более длительного тайм-аута. в System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException (WebException webException, запрос HttpWebRequest, HttpAbortReason abortReason)

Мой вопрос: что случилось за 7 минут? Было ли это ожидание на клиенте в течение 10 минут, но на веб-сервере 2:41? С чего бы это? Если я вызываю веб-сервис сотни раз из разных потоков одновременно как-нибудь в очереди на клиенте? Еще до достижения IIS?

Я ценю любую помощь в этом. Большое спасибо заранее.

Ответы [ 2 ]

1 голос
/ 07 октября 2010

Это очень сложно диагностировать. Может быть множество причин, по которым это происходит, и вам нужно найти более подробную информацию о вашей системе, прежде чем вы сможете четко сказать, что происходит. Вы должны использовать счетчики производительности для мониторинга количества вызовов и обработки веб-служб на веб-сервере. Причины тайм-аутов могут быть:

  • Регулирование службы, которая может обрабатывать только ограниченное количество запросов или одновременно удерживать только ограниченное количество экземпляров и сеансов. Другие запросы ожидают в очереди на сервере. Вместе с медленной обработкой это может быть большим ограничением.
  • Настройки параллелизма для одноэлементных сервисов
  • Сеть с полосой пропускания, если ваша служба Windows заполняет сеть большим количеством больших сообщений
  • Постоянные соединения HTTP - по умолчанию машина может создавать только два параллельных соединения с одним сервером по HTTP. Другой запрос в очереди на клиенте.
  • и т.д.. + комбинации
0 голосов
/ 18 февраля 2016

Я получил ошибку тайм-аута WCF без других исключений.В конце концов, теги, которые я добавил в файл конфигурации для включения трассировки, каким-то образом ограничивают размер полезной нагрузки и просто предотвращают отправку формы ответа.Как только я закомментировал теги, обычно ожидаемый ответ возобновился.

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