0

我们在客户的计算机上部署了一个包含 SSRS 报告的 VB.Net 应用程序。

应用程序连接到应用程序中的 SQL Server 数据库没有任何问题。我们安装了 SQL Server Data Tools,因此我们可以将报表 (rdl) 和数据源 (rdl) 文件部署到报表服务器。这些部署没有任何问题。

在 SQL Server Data Tools 中,我们也可以毫无问题地“预览”报表。

在尝试从 Internet Explorer(以管理员身份运行)查看报告时,我们确实遇到了问题。

我们收到以下错误:

Cannot create a connection to data source 'DataSourceReports' 
(this is the name we used for the TargetDataSourceFolder) 
error:40 - Could not open a connection to SQL Server

当我们部署的应用程序运行报告时,我们也会遇到同样的错误。

请让我们知道在 SQL Server 端没有正确设置的内容。

4

1 回答 1

2

一个可能的可能性是您遇到了双跳身份验证问题。从您的解释中不清楚,但是 SQL Server 数据库是否与报表服务器位于单独的服务器上?如果是这样,那么您的凭据允许您连接到报表服务器,但如果您在报表服务器上使用 NTLM,Windows 集成安全性不会将这些凭据传递到 SQL Server 数据库。报表服务器尝试使用网络上的 Kerberos 通过对 SQL Server 数据库的票证进行身份验证,但您必须在网络上正确配置此功能。如果您想使用 Kerberos,请参阅这篇文章:http ://technet.microsoft.com/en-us/library/ff679930(v=sql.100).aspx 。

另一个(更简单)的解决方案是打开报表服务器上的数据源并更改身份验证以使用存储的凭据。确保您使用的凭据对 SQL Server 数据库具有读取权限。这种方法的缺点是,除非您将报表设计为捕获用户信息并在数据集上设置查询或过滤器以限制用户数据,否则您无法在用户报表中使用行级安全性。如果这不是问题,存储的凭据很容易设置和维护——如果你想使用缓存、快照或订阅,无论如何你都必须这样做。有关存储凭据的详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms159736.aspx

于 2012-06-10T14:44:32.570 回答