Подтвердить что ты не робот

Просмотр полного ответа WCF при ошибке с помощью Visual Studio 2010

В Visual Studio 2010 появляется ошибка, которая сообщает мне первые 1024 байта ответа службы WCF при потреблении, но не более.

Мне бы очень хотелось увидеть весь ответ, чтобы я мог понять, что происходит не так, откуда я могу получить эту информацию? Есть ли способ записи полного текста ошибки или все они ограничены правилом 1024 байта?

Как просмотреть более 1024 байтов ответа wcf при возникновении ошибки в Visual Studio 2010?

4b9b3361

Ответ 1

Если вы делаете это в режиме отладки, где у вас установлены точные шаги, вы можете попробовать, если вы установите maxReceivedMessageSize к большому значению помогает.

Как описано в документах:

MaxReceivedMessageSize

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

В вашем случае оно может быть установлено на более низкое значение.

Вы также можете проверить правильность установки maxBufferPoolSize - кажется, что только один буфер стоимостью 1024 байта передается обратно, что возможно, если кто-то установил размер пула как 1 вместо стандартного 512.

Ответ 2

Обновлено:

Использовать SvcConfigEditor.exe инструмент для трассировки и ведения журнала должен быть включен в конфигурации WCF (app.config или web.config). Или вы можете использовать этот инструмент SvcTraceViewer.exe для просмотра большого XML файла.

Например, вы можете установить web.config для initializeData атрибут tracelistener.

<system.serviceModel>
    <diagnostics>
        <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" />
    </diagnostics>
</system.serviceModel>
<system.diagnostics>
    <sources>
        <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true">
            <listeners>
                <add name="traceListener" type="System.Diagnostics.XmlWriterTraceListener" initializeData="C:\Temp\SvcLog\Traces.svclog" />
            </listeners>
        </source>
    </sources>
</system.diagnostics>