SSRS 错误 "Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding."

SSRS error "Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding."

我有一个 SQL 服务器报告服务 (SSRS) 报告,它在 Visual Studio 2015 报告设计器版本 13.0,1100.286 中运行良好,但一旦部署到报告服务器,它就会不断抛出以下错误:

An error has occurred during report processing. (rsProcessingAborted) Cannot create a connection to data source 'DummyDataSource'. (rsErrorOpeningConnection) Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

当我尝试在 SQL Server Report Builder 中测试数据源的连接时,我得到了同样的错误:

下面是我如何为我的数据源设置凭据。请注意,'myUser' 可以在 SQL Server Management Studio 中连接到数据库 'MyDatabase',此外,该报表在 Visual Studio 报表设计器中使用相同的凭据工作正常:

我尝试将报告超时设置为 1800(从 "Use the system default setting" 的初始设置开始),但这并没有解决问题:

我也尝试将报告中数据集的超时设置为 30 秒和 60 秒,同样没有成功。它似乎根本无法连接到数据库,因为在我尝试 运行 报告本身之前它在 "Test Connection" 上失败了。

知道为什么会这样吗?

所以在大量挖掘和尝试我在谷歌搜索时遇到的一切之后,答案如下:最近我们的 IT 人员向数据库服务器添加了大量新 IP,并且当报告(在报告服务器上)尝试时为了连接到数据库,它正在枚举所有这些 IP 并试图连接到所有这些 IP,这导致它无法连接到正确的 IP,因此出现了上述错误。

为了解决这个问题,我们添加了一个新的 DNS 条目,仅映射到数据库的 IP 地址,最终解决了这个问题。

总而言之,我的旧连接字符串(试图连接到所有 IP)是:

Data Source=MyDatabase;Initial Catalog=DummyDataSource

新的 DNS 条目是:sql.MyDatabase.CompanyName.com

最后,可以正常工作的新连接字符串是:

Data Source=sql.MyDatabase.CompanyName.com;Initial Catalog=DummyDataSource