Я получаю случайные тайм-ауты при вызове службы WCF в размещенной среде Azure.Частота проблемы низкая, около 1 или 2 тайм-аута в час, и это не связано с нагрузкой на сервер.Мы используем балансировщик нагрузки Azure (HAProxy) между клиентом и сервером, оба они написаны на .Net framework 4.6.1 и размещены на виртуальных машинах Azure.
На основе трассировок WCF и других журналов,Ситуация выглядит примерно так:
- Клиент отправляет запрос без проблем и ждет.
- Некоторое время ничего не происходит, это может продолжаться несколько секунд.Во время этого ожидания на клиенте или сервере ничего не происходит.
- Сервер получает запросы и разрешает их в обычное время ответа, от 100 до 500 мс, что означает отсутствие проблем с кешем или БД.
Если на шаге 2 у нас будет более 60 секунд, время ожидания клиента истечет, а после этого сервер обработает и ответит на запрос.
Трассировка WCF на стороне серверавыглядит здоровым, даже когда время ожидания истекло, проблема в том, что происходит посередине (шаг 2).
Мы не нашли никаких ошибок или предупреждений в балансировщике нагрузки.Мы поговорили со службой поддержки Azure и проверили, что балансировщик нагрузки работал во время теста.
Я не знаю, где еще искать.Любая помощь или идея будут очень приветствоваться.