2008-09-26 142 views
7

我理想的情況在我們的Web服務日誌會記錄所有的方法調用(認證以及數據訪問)與傳遞給他們,以及錯誤的參數可能已經發生,並有他們與一個將他們與同一個電話相關聯的ID相關聯。另外,理想情況下,我希望能夠控制是否記錄所有參數,或者只記錄方法調用。我希望能夠控制是否所有登錄都記錄或只是失敗的登錄。同樣,在單個請求中檢索到的所有信息都將通過id(guid或其他)進行鏈接。.NET Web服務日誌

這是我理想的測井情況。如果有人知道如何實現所有這一切,並願意移動到曼徹斯特,NH地區...;)

但是,嚴重的是,有沒有人知道我將如何去綁定一個錯誤的web服務請求,或方法調用?我最初的嘗試涉及在Soap擴展中嘗試添加頭(soap或html),以及不將任意值從擴展傳遞到服務本身的東西。我所有的嘗試都沒有成功。

我們當前的記錄情況具有認證記錄到一個表,方法/業務轉移到另一個表,和異常記錄到另一個表,它們之間沒有互聯。時間戳有時很有用,但不夠可靠,無法有效調試。我們目前使用.Net 2.0,並有可能在今年年底前使用3.5,所以如果答覆保持爲2.0的功能將會更有幫助。

任何人有任何想法?

+0

...除了克勞斯的解決方案,我也不得不更新日誌文件夾的權限,改變他們「完全控制」。 – 2017-05-18 13:03:07

回答

11

使用WCF如果可能的話,並實現信息記錄看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

您可能需要使用SvcTraceViewer程序來分析輸出。 (http://msdn.microsoft.com/en-us/library/ms732023.aspx#sectionSection1) – Henrik 2011-02-09 13:58:49