Метод WCF называют дважды

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

Система. Сеть. WebException: базовое соединение было закрыто: неожиданная ошибка произошла на получении.

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

Я нашел подобные сообщения прежде на stackoverflow, но они не решили мою проблему. Кто-либо может сказать мне, что продолжается в здесь?

Спасибо!

15
задан Saurabh Lalwani 19 April 2010 в 18:38
поделиться

1 ответ

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


ОБНОВЛЕНИЕ:

Для дальнейшей диагностики проблемы я бы посоветовал вам активировать трассировку службы, поместив в файл конфигурации следующее:

<system.diagnostics>
    <trace autoflush="true">
    </trace>
    <sources>
        <source name="System.ServiceModel"
                switchValue="Information, ActivityTracing"
                propagateActivity="true">
            <listeners>
                <add name="sdt"
                     type="System.Diagnostics.XmlWriterTraceListener"
                     initializeData="WcfDetailTrace.e2e" />
            </listeners>
        </source>
    </sources>
</system.diagnostics>

Это сгенерирует файл трассировки WcfDetailTrace.e2e который вы можете открыть с помощью Service Trace Viewer Tool , который предоставит вам подробную информацию о вызове и сообщении об ошибке.

12
ответ дан 1 December 2019 в 02:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: