我们有一个运行 Windows Server 2008R2 x64 和 SQL Server 2008R2 x64 并安装/配置了 SSRS 的系统。这是一个被很多人使用的共享报告服务器,有一些相当大的低效数据库(400-500gb 的数据 ish),这些用户使用该系统基于位于顶部的报告模型生成临时报告上述数据库。请注意,用户正在使用 NTLM 登录和识别以运行报告。
大多数报告都很快,但如果您正在运行一份包含 1 年或 2 年数据的报告,它们可能需要一段时间才能返回(大约 5 分钟)。这对大多数用户来说都很好,但是有些用户被困在代理后面,该代理的连接超时设置为 2 分钟。由于 SSRS 2008R2 似乎没有发回“保持活动”信号(通过 wireshark 确认),因此在运行这些长报告之一时,代理服务器认为连接已断开,因此它只是放弃并终止连接。这会给用户一个 401 或 503 错误,并且显然会取消报告(不正确的错误是 SSRS 中的一个已知错误,微软拒绝修复)。
我们从用户那里得到了很多关于这个的抨击,即使这不是我们的问题..所以我正在寻找一个创造性的解决方案。
到目前为止,我想出了:
1) 发现一些未知的 SSRS 设置,可以使其保持连接。
2)在用户和我们的报告服务器之间安装我们自己的代理,它将发送一个keep-alive返回(不确定这会起作用,它有点hacky,只是创造性地思考!)
3)重写我们的报告数据库是更高效(是的,这是最好的解决方案,但也非常昂贵)
4)请教专家 :) :)
我们已经与 Microsoft 支持人员预约了电话,看看他们是否可以提供帮助 - 但 Stack 的任何专家都可以提供帮助吗?我很欣赏这对于服务器故障来说可能是一个更好的问题(我可能会在那里发布)但它真的是一个开发问题:)
谢谢!