我试图将我的应用程序(客户端)发出的SOAP请求记录到旧的ASMX Web服务中。
然后我想使用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来记录客户端的消息,或者是否有一个我缺少的简单配置设置?
答案 0 :(得分:0)
也许您应该使用以下示例进行客户端日志记录:
http://msdn.microsoft.com/en-us/library/vstudio/bb885203(v=vs.100).aspx
在客户端,跟踪点如下: