2009-12-15 133 views
5

我很新的WCF和SOAP消息,但我設法拼湊裏面我是用下載來自媒體機構的新聞報道一個相當不錯的客戶端。我已經生成了代理類,它顯然抽象了很多,意味着我基本上只是創建對象,調用方法和遍歷結果。查看原始XML請求

我的問題是,我有到Web服務調用應該是什麼樣子原始XML例子,我希望能夠以「比較」這些給我提出的呼籲。基本上我需要確保我所做的調用與用於測試目的的示例XML文件相同。

難道我問什麼有意義或我要對這個錯誤的方式?請讓我知道,如果有任何必要的信息,我已經遺漏了,我可以轟炸段落,但不知道什麼信息是相關的。

回答

2

您是否使用了Microsoft的Service Trace Viewer工具? This MSDN page會爲您提供如何使用它的詳細信息。

+0

感謝您的迴應,slugster。我會看看這個,並會回覆我的走向。 – dave 2009-12-15 10:04:22

2

股票的答案是使用fiddler作爲代理 - 這將允許您查看傳出的在您的客戶端和服務之間傳入的消息。

還不能從個人的經驗說話,但是隊員們對我開發(前生)有 - 非常正確 - 編寫了我們的服務與包裝內置支持使用代理明確來簡化使用的提琴手。

+0

感謝您的回覆。使用Fiddler的問題是它是一個SSL安全的Web服務,因此存在Web服務不喜歡Fiddler的證書的問題,因爲它是一個無法識別的CA.我已經嘗試覆蓋服務器證書驗證,但是Web服務發生了一些事情,它根本就不喜歡這種情況。答案可能是繼續玩這個 – dave 2009-12-15 10:07:07

+0

你有沒有試過Live HTTP頭文件,一個Firefox插件?我不確定它是否支持CA,但值得一試。 – 2009-12-22 00:13:18

10

您可以使用WCF跟蹤來記錄原始XML消息。以下是.config使WCF與原始消息記錄跟蹤:

<configuration> 
    <system.serviceModel> 
    <diagnostics> 
     <messageLogging maxMessagesToLog="30000" 
       logEntireMessage="true" 
       logMessagesAtServiceLevel="true" 
       logMalformedMessages="true" 
       logMessagesAtTransportLevel="true"> 
     </messageLogging> 
    </diagnostics> 
    </system.serviceModel> 
    <system.diagnostics> 
    <sources> 
     <source name="System.IdentityModel" switchValue="Verbose" logKnownPii="true"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
     <!-- Log all messages in the 'Messages' tab of SvcTraceViewer. --> 
     <source name="System.ServiceModel.MessageLogging"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
     <!-- ActivityTracing and propogateActivity are used to flesh out the 'Activities' tab in 
      SvcTraceViewer to aid debugging. --> 
     <source name="System.ServiceModel" switchValue="Error, ActivityTracing" propagateActivity="true"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
     <!-- This records Microsoft.IdentityModel generated traces, including exceptions thrown 
      from the framework. --> 
     <source name="Microsoft.IdentityModel" switchValue="Warning"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="trace.e2e" /> 
    </sharedListeners> 
    <trace autoflush="true" /> 
    </system.diagnostics> 
</configuration> 

你可以閱讀更多有關WCF從MSDN: Configuring Tracing跟蹤。

微軟提供了一個Service Trace Viewer Tool閱讀.svclog文件。

確保在initializeData定義的路徑是可寫的爲您服務。

0

我不知道很多關於WCF好的帖子,但你可以重定向到網絡上的某個地方記錄的身體上不同的Web服務器的連接。這可以讓你看到你正在發送的內容,但需要一些基礎設施的工作。這可能是您的開發機器上運行的Web服務器。