2015-06-04 3 views
0

Добрый день.WCF SOAP Service не возвращает тело сообщения HTTP

У нас есть развертывание ПРОДУКТА, в котором работает служба WCF SOAP под IIS, Azure, веб-роли.

Мы недавно заметили, что некоторые из запросов показывают странное поведение, которое мы не можем объяснить и понять.

Похоже, что в некоторых случаях запрос обрабатывается, HTTP-заголовки возвращаются клиенту, но тело сообщения не возвращается. Примерно через 120 секунд после начала запроса соединение будет удалено.

HTTP-заголовки включают длину контента, которая кажется правильной.

Кажется, что около 10% запросов ведут себя таким образом.

Мы попытались воспроизвести в тесте, но, похоже, это происходит только при очень высокой нагрузке.

Мы попытались использовать Streaming ad Buffered TransferMode, не видели никакой разницы.

Мы вручную добавили трассировки WCF Diagnostic на один из серверов. Ошибок не зафиксировано. Трассировка сообщений показывает, что ни один из запросов не обрабатывался более 18 секунд, что хорошо для нашей системы.

Любая помощь будет высоко оценена.

Br, Ханан

ответ

0

Как вы сомневаетесь, что это может быть проблемой производительности или масштабируемости. Для того, чтобы сверлить, что вниз, сначала подтвердить это

  1. Ретеста сценариев с очень легкой нагрузкой, чтобы убедиться, что код и бизнес функциональность реализована правильно.

  2. После того, как вы убедитесь, что система разработана правильно, затем перейдите к проверке масштабируемости, которая даст вам некоторые цифры для определения эталонных показателей и того, как система ведет себя во время процесса масштабирования, если такая вещь существует.

    Выполнение теста масштабируемости заключается в том, чтобы увеличить нагрузку линейно и сначала выяснить, что такое развертываемая система или среда (CPU/Memory/Network/IO ...), и когда должно применяться правило масштабирования. Во-вторых, когда вы увеличиваете масштаб, вам нужно постоянно делать некоторые запросы и подтверждать, что масштабирование вверх или вниз не влияет на решение.

  3. Если вы уверены, что емкость системы достаточно хороша для вашей нагрузки, тогда разверните ее дальше, чтобы увидеть, есть ли какая-либо базовая БД или подсистема.

Мониторинг вашего сервера с помощью анализа показателей инструмента Perfmon даст вам лучшую картину для понимания проблем с производительностью.

Примечание. Если вы можете увидеть последовательное ошибочное поведение с ответами независимо от нагрузки, и даже небольшой ручной запрос не работает, тогда лучше посмотреть его на другой подход, а не сомневаться в его емкости.

Смежные вопросы