Просмотр полного ответа WCF при ошибке с помощью Visual Studio 2010
В Visual Studio 2010 появляется ошибка, которая сообщает мне первые 1024 байта ответа службы WCF
при потреблении, но не более.
Мне бы очень хотелось увидеть весь ответ, чтобы я мог понять, что происходит не так, откуда я могу получить эту информацию? Есть ли способ записи полного текста ошибки или все они ограничены правилом 1024 байта?
Как просмотреть более 1024 байтов ответа wcf при возникновении ошибки в Visual Studio 2010?
Ответы
Ответ 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>