Teilen über


Empfohlene Einstellungen für die Ablaufverfolgung und Nachrichtenprotokollierung

In diesem Thema werden die empfohlenen Einstellungen für die Ablaufverfolgung und die Nachrichtenprotokollierung für verschiedene Betriebsumgebungen beschrieben.

Legen Sie in einer Produktionsumgebung, wenn Sie WCF-Ablaufverfolgungsquellen verwenden, switchValue auf Warnung fest. Wenn Sie die WCF-Ablaufverfolgungsquelle System.ServiceModel verwenden, legen Sie das switchValue Attribut auf Warning und das propagateActivity Attribut auf true. Legen Sie, wenn Sie eine benutzerdefinierte Ablaufverfolgungsquelle verwenden, das switchValue-Attribut auf Warning, ActivityTracing fest. Dies kann manuell mithilfe des Konfigurations-Editor-Tools (SvcConfigEditor.exe) erfolgen. Wenn Sie keinen Leistungseinbruch erwarten, können Sie das switchValue-Attribut in allen zuvor genannten Fällen auf Information festlegen, wodurch eine relativ große Menge an Ablaufverfolgungsdaten generiert wird. Im folgenden Beispiel werden diese empfohlenen Einstellungen veranschaulicht.

<configuration>
 <system.diagnostics>
  <sources>
    <source name="System.ServiceModel"
            switchValue="Warning"
            propagateActivity="true" >
      <listeners>
        <add name="xml"/>
      </listeners>
    </source>
    <source name="myUserTraceSource"
            switchValue="Warning, ActivityTracing">
      <listeners>
        <add name="xml"/>
      </listeners>
    </source>
  </sources>
  <sharedListeners>
    <add name="xml"
         type="System.Diagnostics.XmlWriterTraceListener"
               initializeData="C:\logs\Traces.svclog" />
  </sharedListeners>
 </system.diagnostics>

<system.serviceModel>
  <diagnostics wmiProviderEnabled="true">
  </diagnostics>
 </system.serviceModel>
</configuration>

Wählen Sie in einer Bereitstellungs- oder Debugumgebung Information oder Verbose zusammen mit ActivityTracing entweder für eine benutzerdefinierte oder System.ServiceModel-Ablaufverfolgungsquelle. Um das Debugging zu verbessern, sollten Sie der Konfiguration auch eine zusätzliche Ablaufverfolgungsquelle (System.ServiceModel.MessageLogging) hinzufügen, um die Protokollierung von Nachrichten zu aktivieren. Beachten Sie, dass dieses switchValue-Attribut keine Auswirkungen auf diese Protokollquelle hat.

Im folgenden Beispiel keyword werden die empfohlenen Einstellungen veranschaulicht und ein freigegebener Listener wird verwendet, der das XmlWriterTraceListener nutzt.

<configuration>
 <system.diagnostics>
  <sources>
    <source name="System.ServiceModel"
            switchValue="Information, ActivityTracing"
            propagateActivity="true" >
      <listeners>
        <add name="xml"/>
      </listeners>
    </source>
    <source name="System.ServiceModel.MessageLogging">
      <listeners>
        <add name="xml"/>
      </listeners>
    </source>
    <source name="myUserTraceSource"
            switchValue="Information, ActivityTracing">
      <listeners>
        <add name="xml"/>
      </listeners>
    </source>
  </sources>
  <sharedListeners>
    <add name="xml"
         type="System.Diagnostics.XmlWriterTraceListener"
               initializeData="C:\logs\Traces.svclog" />
  </sharedListeners>
 </system.diagnostics>

 <system.serviceModel>
  <diagnostics wmiProviderEnabled="true">
      <messageLogging
           logEntireMessage="true"
           logMalformedMessages="true"
           logMessagesAtServiceLevel="true"
           logMessagesAtTransportLevel="true"
           maxMessagesToLog="3000"
       />
  </diagnostics>
 </system.serviceModel>
</configuration>

Verwenden von WMI zum Ändern von Einstellungen

Sie können WMI verwenden, um Konfigurationseinstellungen zur Laufzeit zu ändern (indem Sie das wmiProviderEnabled Attribut in der Konfiguration aktivieren, wie im zuvor beschriebenen Konfigurationsbeispiel gezeigt). Sie können zum Beispiel WMI im CIM Studio verwenden, um während der Laufzeit die Protokollierungsquellenebenen von Warnung auf Information zu ändern. Beachten Sie, dass die Leistungskosten des Livedebuggings auf diese Weise sehr hoch sein können. Weitere Informationen zur Verwendung von WMI finden Sie im Thema "Verwenden der Windows-Verwaltungsinstrumentation für Diagnose" .

Aktivieren Sie korrelierte Ereignisse in der ASP.NET-Ablaufverfolgung

ASP.NET-Ereignisse legen die Korrelation-ID (ActivityID) nicht fest, außer wenn die Ablaufverfolgung von ASP.NET-Ereignissen aktiviert wird. Um korrelierte Ereignisse ordnungsgemäß anzuzeigen, müssen Sie ASP.NET Ereignisablaufverfolgung mithilfe des folgenden Befehls in der Befehlskonsole aktivieren, der aufgerufen werden kann, indem Sie " Start", " Ausführen" und "cmd" eingeben.

logman start mytrace -pf logman.providers -o test.etl -ets

Um die Ablaufverfolgung von ASP.NET Ereignissen zu deaktivieren, verwenden Sie den folgenden Befehl:

logman stop mytrace -ets

Siehe auch