2

希望我能正确解释这个..

Silverlight 应用程序 Telerik Reports(在一个单独的类中)托管 Silverlight 的 Web 应用程序——通过指向 Telerik.Report.Server.dll 的 ReportService.svc 提供对报告的访问。

在我的机器上开发,一切运行良好。有一份报告称,有一定数量的数据超时,因此通过 Google 等...我设法通过 httpBinding 设置、IIS 设置等来正确设置并解决了问题。该报告现在运行良好。

当我将应用程序部署到服务器然后通过浏览器访问 Web 应用程序时,除了长报告之外,一切正常。该报告适用于较少的数据,只是超时并且服务因数据较大而死亡。

但是当我直接在服务器上运行相同的报告(使用服务器上的浏览器)时,一切正常。从另一台机器上打它,一切都很好,除了包含大量数据的报告。

因此,这两种设置的唯一区别是它可以在服务器上的浏览器中运行,但不能在我的机器上访问同一台服务器。

关于可能是什么问题的任何猜测?这很奇怪。是因为 Silverlight 应用程序实际上是在本地机器上运行并超时吗?

我们谈论的时间可能是 75 秒才能生成一份大报告。不是几分钟或任何东西。

关于我可以检查什么或提供更多信息的任何建议?我可以发送所有设置,但因为我认为它们不相关,因为唯一的变量是我们正在使用的机器。

奇怪的...

更新:

所以...使用 Fiddler,我查看了来自 IE 和 Firefox 的调用。它们是相同的。唯一的区别是 Firefox/Telerik 在大约 30 秒后关闭连接。结果仍然返回,但 Firefox 不再监听。但是,如果我查看 IE/Firefox 的响应,它们是相同的。IE 保持连接打开或 Firefox 过早关闭它。这不是防火墙问题,因为当一切都在同一台机器上时会发生这种情况。

4

1 回答 1

2

我最近不得不解决一个几乎完全符合您的描述的问题:一个 WCF 服务,它生成的报告用于为较大的报告超时。并且更改各种 WCF 绑定超时值没有任何区别。

直到后来我才发现超时实际上发生在网络流量管理器上(在这种情况下是 ZXTM,但这并不重要)。用于访问服务的主机名实际上是向流量管理器注册的,而不是直接向服务器注册的,因此所有流量都通过 ZXTM 路由。而那个恰好定义了全局 40 秒超时。

一个非常有效的快速修复是使用服务器的机器名称来寻址服务。

因此,我会检查到您的服务器的流量是如何被路由的,以及它是否可能是类似的情况。

于 2011-10-31T21:30:51.110 回答