2017-09-17 19 views
0

カスタムWCF LOBアダプタを作成しました。私はそれでトレースクラスを使用しています。 BizTalk ServerでそのアダプタからWindowsイベントログへのログを書きたいと思っています。system.diagnosticsを使用してWindowsイベントログにログを追加する方法

BizTalkホスト構成ファイルに以下のセクションを追加するとBizTalkが起動しません。何が問題なの?

<system.diagnostics> 
    <trace autoflush="true"> 
    <sources> 
    <source name="AzureServiceBusClient" switchValue="Verbose, ActivityTracing"> 
     <listeners> 
     <add name="AzureServiceBusTraceListener" /> 
     </listeners> 
    </source> 
    </sources> 
    <sharedListeners> 
     <add name="AzureServiceBusTraceListener" type="System.Diagnostics.EventLogTraceListener" initializeData="BizTalk Server" />  
    </sharedListeners> 
</trace> 
</system.diagnostics> 

は、これは私のトレース・クラスをコードで作成する方法である:あなたがそれらを持っているよう

// 
// Initializes a new instane of Microsoft.ServiceModel.Channels.Common.AdapterTrace using the specified name for the source 
// 
static AdapterTrace trace = new AdapterTrace("AzureServiceBusClient"); 
+0

から[ホストインスタンスを起動しようとすると、Windowsのイベントログにエラーを得るのですか?また、Windowsイベントログに送信しようとしていますが、Azureサービスバストレースリスナを使用しているようですが、この不一致を説明できますか? – Dijkgraaf

+0

また、リスナーは 'initializeData =" BizTalk Server "ではなく' initializeData = "TraceListenerLog"であるべきですか? – Dijkgraaf

+0

あなたは明確にすることができますか? WCFカスタムで使用するカスタムバインディングを作成しましたか、既存のアダプタ/バインディングからイベントログイベントを追加しようとしていますか? –

答えて

2

ソースは別々のトレースにアイテムではなく、入れ子にする必要があります。トレースタグを自己終了するのを忘れて、終了タグを追加して無効にする必要があると思います。

次のように修正すると、うまくいけばあなたのBizTalkが起動しなくなるはずです。例以下は

<system.diagnostics> 
    <trace autoflush="true" /> 
    <sources> 
     <source name="AzureServiceBusClient" switchValue="Verbose, ActivityTracing"> 
      <listeners> 
       <add name="AzureServiceBusTraceListener" /> 
      </listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add name="AzureServiceBusTraceListener" type="System.Diagnostics.EventLogTraceListener" initializeData="BizTalk Server" />  
    </sharedListeners> 
</system.diagnostics> 

Diagnostic Tracing and Message Logging

<system.diagnostics> 
    <sources> 
     <source name ="System.ServiceModel" switchValue="Verbose"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
     <source name ="System.ServiceModel.MessageLogging" 
       switchValue="Verbose, ActivityTracing">   
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
     <source name ="System.Runtime.Serialization" switchValue="Verbose"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add name="xml" type="System.Diagnostics.XmlWriterTraceListener"    
      traceOutputOptions="LogicalOperationStack" 
      initializeData="C:\log\WCFTrace.svclog" /> 
    </sharedListeners> 
    <trace autoflush="true" /> 
    </system.diagnostics> 
    <system.serviceModel> 
    <diagnostics> 
     <messageLogging 
      logEntireMessage="true" 
      logMalformedMessages="false" 
      logMessagesAtServiceLevel="true" 
      logMessagesAtTransportLevel="false"/> 
    </diagnostics>  
    </system.serviceModel> 
関連する問題