Я использую WCF в довольно требовательной среде. Одно поведение, которое я наблюдал, - это то, что я назвал холодным стартапом. Когда я в первый раз запускаю клиент, который вызывает службу, кажется, что в первых вызовах возникает много сбоев. Например, я могу наблюдать за первым, скажем, десять звонков, а затем следующие 200 звонков завершатся неудачно. Я разговариваю со службой асинхронно. Служба запускается и отвечает нормально. Я вижу, что это проблема конечной точки (потенциально), а не проблема операции, так как все несколько различных операций потерпят неудачу. Такое ощущение, что есть блокировка, и конечная точка останавливается и перезагружается, а затем все в порядке, хотя у меня нет доказательств, подтверждающих это.
Нет ошибок в трассировке на стороне сервера. Мои журналы на стороне клиента показывают много следующих исключений:
System.ServiceModel.CommunicationException: сервер не предоставил значимого ответа; это может быть вызвано несоответствием контракта, преждевременным завершением сеанса или внутренней ошибкой сервера.
Я рассмотрел реализацию алгоритма сглаживания, чтобы выровнять сервисные вызовы, так как при запуске их, как правило, много. Кто-нибудь еще видел подобное поведение? Спасибо.
Steve
РЕДАКТИРОВАТЬ: служба размещена в службе Windows.
РЕДАКТИРОВАТЬ: Спасибо за комментарии, ребята.
Я с самого начала установил, что номера в разных очередях довольно высокие. У меня есть некоторые с трудом завоеванные знания о том, как масштабировать службы WCF. Я разрешаю 2048 одновременных подключений. Я установил listenBackLog и т.д ...
Я реализовал сглаживание для первых 1000 вызовов, и это, похоже, получилось. Это может быть связано с JIT, но у меня нет никаких доказательств этого. Пока я собираюсь покинуть его и посмотреть, не произойдет ли оно снова.