如何调试WCF服务?

时间:2012-09-22 16:39:12

标签: .net wcf

我的Windows应用程序中托管了WCF Restful服务。

该服务的客户端是移动应用程序。

客户端调用服务并将消息传递给应用程序并执行工作。

我面临的问题是应用程序在大多数情况下都能正常运行。但它在某些机器和网络设置上不起作用。

提出更好的想法: 该应用程序无法在连接到路由器A的计算机1上运行。现在,当我更改并将其连接到路由器B时,同一个应用程序开始在同一台计算机上运行。

同样,应用程序不能连接到路由器A的机器1上。现在,当我更换机器并保持连接到同一路由器时,应用程序正常工作。

我无法弄清楚问题所在。有关如何调试此问题的任何想法吗?

任何帮助表示感谢。

3 个答案:

答案 0 :(得分:5)

我会在WCF服务中启用跟踪和消息记录。这可以在服务的web.config / app.config文件中完成,最容易通过工具菜单下的Visual Studio中的WCF服务配置工具完成(注意:一旦打开此工具一次,您将能够关闭它,然后右键单击您的app / web .config文件,并在Visual Studio会话期间从上下文菜单中选择“编辑WCF配置”,并在该工具中自动打开该文件。在WCF配置编辑器上,导航到“诊断”部分,您可以打开“跟踪和消息”登录。请注意创建日志文件的位置和/或调整到更理想位置的路径。我还建议启用autoflush,以便更频繁地将信息写入日志。您可能希望在跟踪会话后循环服务,以确保日志文件包含所有相关信息。

现在,从非工作配置中点击服务。使用svctraceviewer.exe检查日志,您可以在程序文件下的SDK文件夹中找到该日志。查看日志中是否有任何内容跳出来,如果没有,则清除服务器上的现有日志文件,并检查有效会话中的一组日志文件,以尝试对比差异。

以下是有关WCF跟踪的msdn链接,可能会有所帮助: http://msdn.microsoft.com/en-us/library/ms730342.aspx

答案 1 :(得分:0)

您可以尝试使用Fiddler之类的工具来检查和比较在不同环境中交换的消息。

答案 2 :(得分:0)

为了达到您的目的,您可以为您的wcf服务启用跟踪。有关此主题的stackoverflow上已有链接。

How to turn on WCF tracing?