1

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

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

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

我面临的问题是该应用程序在大多数情况下都可以正常工作。但它不适用于某些机器和网络设置。

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

同样,该应用程序无法在连接到路由器 A 的 machine1 上运行。现在,当我更换机器并保持连接到同一路由器时,该应用程序运行正常。

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

任何帮助表示赞赏。

4

3 回答 3

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

于 2012-09-22T17:08:48.823 回答
0

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

于 2012-09-22T16:42:05.990 回答
0

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

如何打开 WCF 跟踪?

于 2012-09-23T04:45:07.827 回答