2014-11-14 68 views
2

我試圖跟蹤使用4.0 .Net框架用C#編寫的SOAP Web服務。應用程序配置中不允許tracemode屬性

下面這個教程後:http://msdn.microsoft.com/en-us/library/ty48b824%28v=vs.110%29.aspx 我配置我的Web服務客戶端的應用程序配置以下列方式:

<system.diagnostics> 
<trace autoflush="true"/> 
<sources> 
    <source name="System.Net"> 
    <listeners> 
     <add name="TraceFile"/> 
    </listeners> 
    </source> 
    <source name="System.Net.Sockets"> 
    <listeners> 
     <add name="TraceFile"/> 
    </listeners> 
    </source> 
</sources> 
<sharedListeners> 
    <add name="TraceFile" type="System.Diagnostics.TextWriterTraceListener" initializeData="trace.log"/> 
</sharedListeners> 
<switches> 
    <add name="System.Net" value="Verbose"/> 
    <add name="System.Net.Sockets" value="Verbose"/> 
</switches> 

這工作,但我並不需要看到的十六進制代碼在跟蹤日誌中。我提到的教程說我需要將「tracemode」屬性設置爲「protocolonly」。但是當我添加這個屬性時,visual studio告訴我這個屬性是無效的。

無論如何我試圖運行程序。但是,當我創建我的Web服務類的實例時,我得到一個「TypeInitializationException」。如果我刪除tracemode屬性客戶端工作正常,但我仍然在我的跟蹤日誌中得到十六進制代碼。

+0

在閱讀更仔細,我發現這個: 「可選的String屬性設置爲includehex顯示在十六進制和文本格式協議痕跡設爲protocolonly只顯示文本的默認值是includehex 該屬性必須。設置在元素上,如示例所示。如果在元素下的元素上設置此屬性,則會引發異常。 – 2014-11-14 16:32:18

回答

3

如果添加「tracemode」屬性,VS會說它不被允許,但是日誌文件現在包含完整的XML數據。

這裏是我的app.config片段:

<system.diagnostics> 
    <trace autoflush="true"/> 
    <sources> 
     <source name="System.Net" tracemode="protocolonly"> 

沒有TRACEMODE:

System.Net Verbose: 0 : [9992] Data from ConnectStream#56298650::Write 
System.Net Verbose: 0 : [9992] 00000000 : 3C 73 3A 45 6E 76 65 6C-6F 70 65 20 78 6D 6C 6E : <s:Envelope xmln 
System.Net Verbose: 0 : [9992] 00000010 : 73 3A 73 3D 22 68 74 74-70 3A 2F 2F 73 63 68 65 : s:s="http://sche 
System.Net Verbose: 0 : [9992] 00000020 : 6D 61 73 2E 78 6D 6C 73-6F 61 70 2E 6F 72 67 2F : mas.xmlsoap.org/ 

隨着TRACEMODE:

System.Net Verbose: 0 : [7524] ConnectStream#57911184::Write() 
System.Net Verbose: 0 : [7524] Data from ConnectStream#57911184::Write 
System.Net Verbose: 0 : [7524] <<<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><GetCloseOutList xmlns="http://adsionline.com/ADSIShippingWS/"><shipperFriendlyName>GREENWOOD</shipperFriendlyName><carrierFriendlyName>FedEx Ground®</carrierFriendlyName></GetCloseOutList></s:Body></s:Envelope>>> 
System.Net Verbose: 0 : [7524] Exiting ConnectStream#57911184::Write() 
System.Net Verbose: 0 : [7524] ConnectStream#57911184::Close() 
System.Net Verbose: 0 : [7524] Exiting ConnectStream#57911184::Close() 

我不知道爲什麼它抱怨和仍然有效。但它有效,猜測這是重要的。