2014-10-23 6 views
3

32 비트 BizTalk 2013r1 호스트 인스턴스를 사용하여 LOB 어댑터를 통해 Oracle에 삽입 요청을 보냅니다.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

왜 'BizTalk'추적 메커니즘 대신 'WCF' 메시지 로깅을 사용하려고합니까? WCF 포트에서 추적을 사용 설정하려고 했습니까? –

+0

BizTalk 어댑터가 메시지를 보내지 못하면 추적 데이터베이스에서 사용할 수있는 콘텐츠가 없습니다. –

+0

흠, 그러면 직접적으로 관련된 메시지가 아니라 다른 문제가있는 것 같습니다. Windows 이벤트 로그에 메시지가 있습니까? –

답변

0

FILE 어댑터를 사용하는 다른 송신 포트를 만드는 것은 매우 쉽습니다.

  • 이 다음 각 요청에 대해 어떤 위치에 파일을 작성합니다

같은 맵을 추가하고 동일한 메시지를 포함하는 오라클로 이동하는 것과 같은 메시지를 잡기 위해 필터를 설정 본문 내용은 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-having? forum = biztalkgeneral – Gruff

+0

포트에서 모든 추적을 활성화했으나 "추적 된 메시지 이벤트가 표시되지 않습니다" –