【发布时间】:2014-07-04 01:00:21
【问题描述】:
我正在尝试记录我的应用程序(客户端)向旧的 ASMX Web 服务发出的 SOAP 请求。
然后我想使用 SvcTraceViewer 工具查看这些消息(就像在 WCF 中一样)。正在创建日志文件,但我似乎找不到正确的配置设置,因此我可以看到这些消息。
我的 system.diagnostics 设置是:
<system.diagnostics>
<trace autoflush="true"/>
<sources>
<source name="System.Net" maxdatasize="1024">
<listeners>
<add name="TraceFile"/>
</listeners>
</source>
<source name="System.Net.Sockets" maxdatasize="1024">
<listeners>
<add name="TraceFile"/>
</listeners>
</source>
<source name="System.Net.Http">
<listeners>
<add name="TraceFile"/>
</listeners>
</source>
<source name="System.Web.Services.Asmx">
<listeners>
<add name="TraceFile"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add name="TraceFile" type="System.Diagnostics.XmlWriterTraceListener" initializeData="trace.svclog"/>
</sharedListeners>
<switches>
<add name="System.Net" value="Verbose"/>
<add name="System.Net.Sockets" value="Verbose"/>
<add name="System.Net.Http" value="Verbose"/>
<add name="System.Web.Services.Asmx" value="Verbose" />
</switches>
</system.diagnostics>
我可以看到单个数据包(我假设来自 System.Net,每个数据包都包含消息的一部分,但没有一个地方可以轻松提取该消息。
在 ASMX 中记录服务器上的入站消息很容易:
<microsoft.web.services>
<!-- Set the enabled attribute to "true" for input and output tracing -->
<diagnostics>
<trace enabled="true" input="InputTrace.webinfo" output="OutputTrace.webinfo" />
</diagnostics>
</microsoft.web.services>
但是记录客户端请求似乎相当具有挑战性。 WCF 有 ServiceModel.Diagnostics Messaging 配置,但我找不到任何可与 AMSX Web 服务相媲美的东西。
<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>
我真的必须写一个SoapExtension 来在客户端记录消息,还是我缺少一个简单的配置设置?
【问题讨论】:
标签: asp.net web-services soap asmx