这个问题似乎非常接近我正在寻找的东西 - 我能够设置跟踪,我正在查看我的服务调用的日志条目.
但是我需要查看原始soap请求以及我发送给服务的数据,我看不到从SvcTraceViewer那样做的事情(只显示日志条目,但没有数据发送到服务) - 我只是缺少配置?
这是我在web.config中得到的:
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Verbose"
propagateActivity="true">
<listeners>
<add name="sdt"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="App_Data/Logs/WCFTrace.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>
Run Code Online (Sandbox Code Playgroud)
任何帮助赞赏!
更新:这是我在跟踪中看到的全部内容:
<E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent">
<System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system">
<EventID>262163</EventID>
<Type>3</Type>
<SubType Name="Information">0</SubType>
<Level>8</Level>
<TimeCreated SystemTime="2010-05-10T13:10:46.6713553Z" />
<Source Name="System.ServiceModel" />
<Correlation ActivityID="{00000000-0000-0000-1501-0080000000f6}" />
<Execution ProcessName="w3wp" ProcessID="3492" ThreadID="23" />
<Channel />
<Computer>MY_COMPUTER_NAME</Computer>
</System>
<ApplicationData>
<TraceData>
<DataItem>
<TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Information">
<TraceIdentifier>http://msdn.microsoft.com/en-US/library/System.ServiceModel.Channels.MessageSent.aspx</TraceIdentifier>
<Description>Sent a message over a channel.</Description>
<AppDomain>MY_DOMAIN</AppDomain>
<Source>System.ServiceModel.Channels.HttpOutput+WebRequestHttpOutput/50416815</Source>
<ExtendedData xmlns="http://schemas.microsoft.com/2006/08/ServiceModel/MessageTraceRecord">
<MessageProperties>
<Encoder>text/xml; charset=utf-8</Encoder>
<AllowOutputBatching>False</AllowOutputBatching>
<Via>http://xxx.xx.xxx.xxx:9080/MyWebService/myService</Via>
</MessageProperties>
<MessageHeaders></MessageHeaders>
</ExtendedData>
</TraceRecord>
</DataItem>
</TraceData>
</ApplicationData>
Run Code Online (Sandbox Code Playgroud)
mar*_*c_s 11
您没有显示SOAP消息的特定选项卡 - 但XML选项卡确实包含整个SOAP消息 - 没有?
替代文字http://i39.tinypic.com/j67rf7.jpg
你在这个XML片段中缺少什么?
更新:约翰,你很遗憾没有显示你的<system.serviceModel>/<diagnostics>部分看起来像什么- 我用于这个结果看起来像这样:
<diagnostics>
<messageLogging
logMessagesAtTransportLevel="true"
logMessagesAtServiceLevel="false"
logMalformedMessages="true"
logEntireMessage="true"
maxSizeOfMessageToLog="65535000"
maxMessagesToLog="500" />
</diagnostics>
Run Code Online (Sandbox Code Playgroud)
你有相同的设置吗?也许你失踪logEntireMessage或其他什么?
小智 11
我最近遇到了与原始问题更新中相同的问题:跟踪显示已发送消息,但消息本身不存在.对我来说,修复是添加System.ServiceModel.MessageLogging源.这是我的system.diagnostics配置部分:
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true" >
<listeners>
<add name="xml"/>
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add name="xml"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="C:\logfiles\Traces.svclog" />
</sharedListeners>
</system.diagnostics>
Run Code Online (Sandbox Code Playgroud)
我的system.serviceModel/diagnostics部分:
<diagnostics>
<messageLogging
logMessagesAtTransportLevel="true"
logMessagesAtServiceLevel="true"
logMalformedMessages="true"
logEntireMessage="true"
maxSizeOfMessageToLog="65535000"
maxMessagesToLog="500" />
</diagnostics>
Run Code Online (Sandbox Code Playgroud)
一旦我添加了MessageLogging源,TraceViewer就会显示"消息日志跟踪"跟踪,其中包含实际的SOAP消息.
| 归档时间: |
|
| 查看次数: |
15814 次 |
| 最近记录: |