WCF – 检查正在发送/接收的消息?

我有2个解决scheme: – 服务器解决scheme –

服务器注册到我的本地主机IIS: http:// localhost / MyApp /

客户端从本地主机应用程序添加WCF服务(服务引用): http://localhost/MyApp/MyService.svc

当我运行客户端时,我希望能够看到来回传递的消息。 我下载了Fiddler,但它似乎并不想让我看到任何stream量被发送,除非我真的使用networking浏览器。 我使用Fiddler错误还是有另一个工具,我应该用这个?


为了澄清,我期望做的是看到实际的消息被传入。我不想对他们做任何事情,除了亲眼看到他们。

我喜欢WCF服务日志实用程序,但我不认为我有那里正确的设置。 我看不到实际的肥皂信息,只是收到一条信息。

而且还要进一步澄清,只要我能够轻松地看到消息,我不在乎使用什么工具。

要查看消息内容,您必须在configuration文件中添加System.ServiceModel.MessageLogging的源代码。 跟踪查看器中的消息选项卡将显示特定服务调用的完整消息。

这是一个示例configuration文件:

<configuration> ... <system.diagnostics> <sources> <source name="System.ServiceModel" switchValue="All" propagateActivity="true"> <listeners> <add name="traceListener" /> </listeners> </source> <source name="System.ServiceModel.MessageLogging" switchValue="All"> <listeners> <add name="traceListener" /> </listeners> </source> </sources> <sharedListeners> <add name="traceListener" type="System.Diagnostics.XmlWriterTraceListener" initializeData="c:\Traces.svclog" /> </sharedListeners> </system.diagnostics> <system.serviceModel> <diagnostics> <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="500"/> </diagnostics> ... </system.serviceModel> ... </configuration> 

有关更多信息,请参阅MSDN上的“configuration跟踪”主题。 http://msdn.microsoft.com/en-us/library/ms733025.aspx

也许我错过了一些东西,但是…为什么不使用WCF追踪function? 这是一个很好的故障排除工具。 我已经使用它在IIS / WAS中托pipe的服务。

启用WCF跟踪

顺便说一句,有些人不知道它,但是你可以同时从服务器端和客户端打开跟踪,查看器会以良好的graphics显示服务器和客户端动作之间的关系。

编辑:每当我不得不捕捉TCP / IPstream量,我使用WireShark 。 如果您需要以编程方式执行此操作,则可以使用SharpPCAP ,以便我可以对从networking捕获的内容执行操作。 但是对于故障排除来说,依靠WCF跟踪要好得多。

如果你想检查消息的程序,你可以实现一个IClientMessageInspector接口并注册到你的客户端。

这允许你访问所有的消息,不pipe你使用什么绑定,而使用像Fiddler这样的工具只允许你使用HTTP传输通道来检查消息。

请注意,使用这种技术,你可以做很多实际上修改的消息或做更多(例如发射通知)。 如果所有你想要做的就是把你的眼睛放在消息,那么使用跟踪可能是一个更容易的方法。

看看这个StackOverflow线程: 如何使用Fiddler来监视WCF服务

它回答了你的一些问题。 你也可以使用类似WireShark的东西,如果你想要检查networking上的所有东西,而不是像Fiddler那样设置Proxy。

您的服务是SOAP还是RESTful? 您可以使用WCF服务跟踪查看器工具来查看SOAP消息标题和正文。 有关configuration您的Web服务跟踪的说明在这里 。