0

我有一个项目,它使用 WCF 服务进行一些数据库查询,构建一个“环境”对象(由不同的数据库类对象组成)并将其在“工作区”对象中返回给客户端。它运行良好。

我向服务中添加了另一个“数据库”类型,其中包含所有正确的合同和方法更新。现在,当我调用该方法时,客户端会在 1 分钟后超时。在调试中,服务方法结束大约需要 3-5 秒。然后在剩下的时间里什么都没有发生,直到在客户端我们看到一个超时问题。没有抛出错误/异常。

请看下面:

来自客户端的调用:

490  m_ScanWorkspace = m_Connection.ScanProxy.CreateEnvironments

服务结束方式:

477   return tWorkspace;
478 }

在服务中到达第 478 行需要 3-5 秒。F10 显示完成。

直到 1 分钟后,当客户端中的第 490 行显示超时错误时,什么都没有发生。在调试时,我可以在 tWorkspace 中看到一个有效的对象。

4

1 回答 1

0

首先,使用命名空间设置WCF 跟踪Diagnostics。只需使用该教程中的第一个示例,WCF 就会转储所有活动的日志,您可以在日志查看器中打开该日志。它会告诉您呼叫失败的确切位置,这将帮助您查明问题。

WCF 很棒,但它给出的错误消息很神秘,而且通常几乎没有用。1 分钟后超时并不一定意味着超时通常意味着什么 - 即找不到服务器。可能是其他问题。

很可能会超过阈值,导致响应对象不完整。这可以是数组长度、字符串内容长度、消息大小等。您将在此处找到其中一些详细信息:https ://stackoverflow.com/a/480191/146077

祝你好运!

于 2013-08-23T22:00:50.407 回答