[英]WCF - Viewing xml request/response to a secure webservice
我有一個WCF服務應用程序,在這個應用程序中,我通過安全連接調用第三方Web服務。
我一直在嘗試使用fiddler來查看請求響應流,但是在嘗試了半天以上的應用程序后,我已經放棄了它。 雖然我向受信任區域提供了更多的小提琴證書,但它有證書問題。
如果只是看到我對第三方Web服務的xml請求和響應,我最好的選擇是什么?
我正在使用生成的代理類,所以我目前無法訪問我發送和接收的原始xml。 我很好奇,如果我過度復雜化可以做得更簡單的事情。 這是我的開發機器,我幾乎可以訪問所有內容,沒有任何限制。
請問一個簡單的方法嗎?
編輯:
此時我甚至不需要使用跟蹤。 我只需要查看請求/響應的序列化輸出。 即使我可以從Visual Studio調試器或其他這樣做這將有所幫助。
使用WCF跟蹤 - 它運行良好,並附帶一個方便的跟蹤查看器實用程序 。
您可以設置多個選項 - 但在其核心,您必須將這樣的內容添加到您的WCF服務和客戶端配置:
<configuration>
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="traceListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData= "c:\log\Traces.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>
</configuration>
開箱即用的是各種“跟蹤偵聽器” - 一個寫入Visual Studio中的輸出控制台,這一個是創建XML文件,或者您可以將內容存儲在SQL Server數據庫表中 - 整個機制是可擴展的,你也可以編寫自己的跟蹤監聽器!
另請參閱此處: 使用WCF跟蹤和此處的WCF跟蹤常見問題解答以獲取更多信息。
由於我試圖從引用到我的WCF應用程序的asmx Web服務讀取soap消息,我的問題的解決方案是創建一個繼承自System.Web.Services.Protocols.SoapExtension的類,注冊此類在web.config中,以便所有流量都通過此類路由並查看。
這些通信都不會出現在WCF跟蹤上,因此這還不夠。 然而,我學習它是有用的,所以現在我能夠看到我的wcf服務應用程序和Web應用程序之間發生的所有事情。
這篇文章為我找到了如何捕獲肥皂信封 - 當消費網絡服務時
將其添加到您的app.config:
<system.diagnostics>
<sources>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="messages" type="System.Diagnostics.XmlWriterTraceListener" initializeData="messages.svclog" />
</listeners>
</source>
</sources>
<system.serviceModel>
<diagnostics>
<messageLogging
logEntireMessage="true"
logMalformedMessages="true"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="false"
maxMessagesToLog="-1"/>
</diagnostics>
它會將所有消息記錄到messages.svclog。 然后,您可以查看它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.