我有一个程序将数据发送到Web服务并将数据存储到XML文件中。我想知道是否有一个类或方法可以捕获前往服务的soap对象并将其转储到文本文件中。谁能告诉我怎么做?
编辑1:
好的,所以在浏览评论中发布的主题后,我编辑了我的web.config文件,如下所示:
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="XML_New.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<appSettings>
<add key="username" value="admin"/>
<add key="password" value="admin"/>
</appSettings>
<connectionStrings/>
<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="true"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="true"
maxMessagesToLog="420">
<filters>
<add nodeQuota="10"
xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
/soap:Envelope/soap:Header
</add>
</filters>
</messageLogging>
</diagnostics>
</system.serviceModel>
<system.web>
<compilation debug="true" >
</compilation>
<authentication mode="Forms" />
</system.web>
<applicationSettings>
<XML_New.Properties.Settings>
<setting name="XML_New_localhost_Service1" serializeAs="String">
<value>http://localhost:1689/Admin.asmx</value>
</setting>
</XML_New.Properties.Settings>
</applicationSettings>
</configuration>
该文件应该记录到c:\ logs \ messages.svclog但是因为它没有原因。有谁知道为什么?
答案 0 :(得分:4)
在asmx服务级别,您可以使用soap扩展。文档和工作示例:http://msdn.microsoft.com/en-us/library/system.web.services.protocols.soapextension.aspx。您可以复制粘贴整个事物,更改GetInitializer
中的转储路径,它可能只适合您。 1
答案 1 :(得分:0)
您可以使用FiddlerCore拦截HTTP上的SOAP,并从请求和响应中保存您想要的所有数据。