WCF: случайно не отвечает

У меня есть особая проблема с клиентскими запросами, которые случайно не получают ответ на вызов службы WCF.

Установка представляет собой приложение Silverlight 5, выполняющее вызовы службы WCF с использованием привязок HTTP и PollingDuplex. SL делает несколько запросов при загрузке (20+ за 20 с), и время от времени не получает ответ на один или два из них. Чтобы было ясно, точно такой же запрос работает 90% времени, если я обновлю страницу, все запросы могут получить ответ.

Ошибка не может быть фактическим отправленным запросом. Я также использую Fiddler для проверки этого, так как вижу, что выполняется запрос (убедитесь, что содержимое совпадает с предыдущими успешными запросами), но ответа на запрос нет. В конечном итоге клиент прерывает запрос. Служба WCF размещена в IIS7, и у меня включена диагностика и ведение журнала. В журналах трассировки сервера WCF я вижу сообщение, которое регистрируется только тогда, когда клиент выполняет запрос. У него есть следующее исключительное действие, зарегистрированное под действием "Обработка сообщения" во время тайм-аута клиента: "Количество доступных байтов не соответствует заголовку HTTP Content-Length. Возможно, произошла ошибка сети или клиент может отправлять недействительные запросы." Это как если бы тело HTTP не доходило до WCF (я не знаю, смогу ли я зарегистрировать полный запрос, полученный IIS, перед передачей обработчикам WCF?). Как я уже сказал, используя Fiddler, я вижу, что полное сообщение является действительным (обратите внимание, что такое поведение также происходит, когда Fiddler не отслеживает трафик, поэтому я исключил Fiddler как проблему).

Обычно действие "Обработка сообщения" содержит "Кому: Действие процесса xxx"

Как я уже говорил, это происходит с сервисами Http и PollingDuplex, на моем компьютере разработчика, а также с производственными веб-серверами. Происходит также на разных конечных точках, и я не думаю, что это связано с поведением регулирования WCF, так как это происходит

Мы будем благодарны за любую информацию или помощь, чтобы выяснить причину, будь то дополнительная информация, которую я могу собрать для диагностики или любые подсказки.

0 ответов

Другие вопросы по тегам