2014-10-23 2 views
3

Я использую 32-битный экземпляр хоста BizTalk 2013r1 для отправки запроса на вставку в Oracle через адаптер LOB.Не удалось зарегистрировать тело сообщения WCF

Мне нужно проследить отправленное тело сообщения. Я настроил btsntsvc.exe.config следующим образом:

<configuration> 
<system.diagnostics> 
    <sources> 
     <source name="System.ServiceModel" switchValue="Verbose,ActivityTracing"> 
      <listeners> 
       <add type="System.Diagnostics.DefaultTraceListener" name="Default"> 
        <filter type="" /> 
       </add> 
       <add name="xml"> 
        <filter type="" /> 
       </add> 
      </listeners> 
     </source> 
     <source name="System.ServiceModel.MessageLogging" switchValue="Verbose, ActivityTracing"> 
      <listeners> 
       <add type="System.Diagnostics.DefaultTraceListener" name="Default"> 
        <filter type="" /> 
       </add> 
       <add name="xml"> 
        <filter type="" /> 
       </add> 
      </listeners> 
     </source> 
     <source name="System.Runtime.Serialization" switchValue="Verbose"> 
      <listeners> 
       <add type="System.Diagnostics.DefaultTraceListener" name="Default"> 
        <filter type="" /> 
       </add> 
       <add name="xml"> 
        <filter type="" /> 
       </add> 
      </listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add initializeData="C:\logs\WCFTrace2.svclog" type="System.Diagnostics.XmlWriterTraceListener" 
name="xml" traceOutputOptions="LogicalOperationStack"> 
      <filter type="" /> 
     </add> 
    </sharedListeners> 
    <trace autoflush="true" /> 
</system.diagnostics> 

<system.serviceModel> 
    <client> 
     <remove contract="IMetadataExchange" name="oracledb" /> 
     <endpoint binding="oracleDBBinding" contract="IMetadataExchange" 
name="oracledb" /> 
    </client> 
    <diagnostics> 
     <messageLogging logEntireMessage="true" logMalformedMessages="true" 
logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" /> 
     <endToEndTracing activityTracing="true" messageFlowTracing="true" /> 
    </diagnostics> 
</system.serviceModel> 

Моя проблема заключается в том, что хотя заголовок сообщения регистрируется тело просто записывается как «... поток ...»

<MessageLogTraceRecord> 
<s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing"  xmlns:s="http://www.w3.org/2003/05/soap-envelope"> 
<s:Header> 
<a:Action  s:mustUnderstand="1">http://Microsoft.LobServices.OracleDB/2007/03/BTS/Table/FOOTFALL/Insert</a:Action> 
<a:MessageID>urn:uuid:5925f3c6-7670-4eaf-843f-df18a609a4fd</a:MessageID> 
<a:ReplyTo> 
<a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address> 
</a:ReplyTo> 
</s:Header> 
<s:Body>... stream ...</s:Body> 
</s:Envelope> 
</MessageLogTraceRecord> 

Может ли кто-нибудь, пожалуйста, сообщить мне, что мне нужно сделать, чтобы получить журнал тела сообщения?

+0

Почему вы пытаетесь использовать ведение журнала сообщений WCF вместо механизма отслеживания BizTalk? Вы пытались включить отслеживание на порт WCF? –

+0

Когда адаптер BizTalk не может отправить сообщение, в трекинге отслеживания нет содержимого. –

+0

Хм, тогда, похоже, есть еще одна проблема, а не непосредственно связанное с сообщением. Есть ли сообщения в журнале событий Windows? –

ответ

0

Создание другого порта отправки, использующего адаптер FILE, довольно просто.

  • Установите фильтр, чтобы поймать те же сообщения, которые идут в Oracle
  • Добавить одинаковые карты

Это будет написать файл в какое-то место для каждого запроса, и содержат одинаковое сообщение содержимое тела, которое будет отправлено адаптеру Oracle.

+0

Да, я сделал это, но я хотел использовать трассировку WCF, потому что мне нужно проверить ответ - и это, похоже, не достигает msgbox. Я предполагаю, что трассировка тела сообщения может не работать, потому что адаптер работает, но открыт для предложений –

+0

Что заставляет вас думать, что ответ, похоже, не достигает msgbox? Отсутствие провала маршрутизации? Чтобы получить ответ, возвращаемый с порта отправки, вы можете попробовать это: https://social.msdn.microsoft.com/Forums/en-US/a459dfe2-91c8-4ece-bd8e-2b838d8c343d/how-to-capture-a -response-received-using-two-way-static-solicit-response-send-port-without-have? forum = biztalkgeneral – Gruff

+0

Я включил все отслеживания на порт, но когда я просматриваю «Отслеживаемые события сообщений, которые я ничего не вижу», –

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