2008-09-26 20 views
7

Meine ideale Situation für die Anmeldung in unserem Webservice wäre es, alle Methodenaufrufe (Authentifizierung sowie Datenzugriff) mit den an sie übergebenen Parametern sowie eventuell aufgetretenen Fehlern zu protokollieren Sie sind mit einer einzigen ID verknüpft, die sie mit demselben Anruf verknüpft. Außerdem möchte ich im Idealfall steuern können, ob alle Parameter protokolliert werden oder ob nur der Methodenaufruf protokolliert wird. Ich möchte kontrollieren können, ob alle Logins protokolliert werden oder nur die fehlgeschlagenen Logins. Wiederum wären alle Informationen, die in einer einzigen Anfrage abgerufen werden, über eine ID (guid oder anders) miteinander verknüpft..Net Web Service Logging

Dies ist meine ideale Protokollierungssituation. Wenn jemand weiß, wie all dies umzusetzen und wäre bereit, in den Manchester, NH-Bereich zu bewegen ...;)

Aber im Ernst, weiß jemand, wie ich über das Binden einer Webservice-Anfrage an einen Fehler gehen würde, oder Methodenaufruf? Meine ersten Versuche beinhalten das Herumspielen in einer Soap Extension, das Hinzufügen eines Headers (soap oder html) und das Übergeben eines beliebigen Wertes von der Extension an den Dienst selbst. Alle meine Versuche waren nicht erfolgreich.

Unsere aktuelle Protokollierungssituation besteht aus der Authentifizierungsprotokollierung in einer Tabelle, den Methoden-/Geschäftsaufrufen in einer anderen Tabelle und Ausnahmen in einer anderen Tabelle, ohne dass eine Verbindung zwischen ihnen besteht. Zeitstempel sind hilfreich, manchmal, aber nicht zuverlässig genug, um effektiv zu debuggen. Wir sind derzeit auf .Net 2.0 mit dem Potenzial, 3.5 bis Ende des Jahres zu verwenden, so dass es hilfreicher wäre, wenn die Antworten auf der Funktionalität von 2.0 gehalten würden.

Wer hat irgendwelche Ideen?

+0

... zusätzlich zu Claus-Lösung sehen, hatte ich auch Berechtigungen für den Protokollordner zu aktualisieren, um sie zu „Full Control“ zu ändern. –

Antwort

11

Verwenden wcf wenn möglich und implementieren Protokollierung Nachricht http://msdn.microsoft.com/en-us/library/ms730064.aspx

<system.diagnostics> 
    <sources> 
     <source name="System.ServiceModel.MessageLogging"> 
     <listeners> 
       <add name="messages" 
       type="System.Diagnostics.XmlWriterTraceListener" 
       initializeData="c:\logs\messages.svclog" /> 
      </listeners> 
     </source> 
    </sources> 
</system.diagnostics> 

<system.serviceModel> 
    <diagnostics> 
    <messageLogging 
     logEntireMessage="true" 
     logMalformedMessages="false" 
     logMessagesAtServiceLevel="true" 
     logMessagesAtTransportLevel="false" 
     maxMessagesToLog="3000" 
     maxSizeOfMessageToLog="2000"/> 
    </diagnostics> 
</system.serviceModel> 
+1

Sie werden wahrscheinlich das SvcTraceViewer-Programm verwenden, um die Ausgabe zu analysieren. (http://msdn.microsoft.com/en-us/library/ms732023.aspx#sectionSection1) – Henrik