Reporting services SetDataSourceRedentials for ReportViewer仅适用于报告的第一页

Reporting services SetDataSourceRedentials for ReportViewer仅适用于报告的第一页,reporting-services,ssrs-2008,reportviewer,credentials,reportserver,Reporting Services,Ssrs 2008,Reportviewer,Credentials,Reportserver,我刚刚在报表服务器上部署了我的第一个SSRS报表,并使用ReportViewer从应用程序中调用了它。问题是,它总是在执行报表之前要求提供数据库用户名和密码。无论我在报表服务器上的何处设置数据库凭据,在报表中它总是要求我提供这些凭据。 因此,我尝试以编程方式设置数据源凭据,如下所示: DataSourceCredentials cred = new DataSourceCredentials(); ReportDat

我刚刚在报表服务器上部署了我的第一个SSRS报表,并使用ReportViewer从应用程序中调用了它。问题是,它总是在执行报表之前要求提供数据库用户名和密码。无论我在报表服务器上的何处设置数据库凭据,在报表中它总是要求我提供这些凭据。 因此,我尝试以编程方式设置数据源凭据,如下所示:

                    DataSourceCredentials cred = new DataSourceCredentials();
                    ReportDataSourceInfoCollection dataSource = ReportViewer1.ServerReport.GetDataSources();
                    cred.Name = dataSource.First().Name;
                    cred.UserId = "sa";
                    cred.Password = "admin_pass";
                    ReportViewer1.ServerReport.SetDataSourceCredentials(new DataSourceCredentials[] { cred });
                    ReportViewer1.ServerReport.Refresh();
报告的第一页加载得很好。不幸的是,第二页再次请求凭据,如果我不再次键入凭据,报表查看器将显示一个错误,如dataSource不存在:

无法创建到数据源“DataSource2”的连接。R钢丝绳连接


有人有这个问题吗?如何解决?谢谢

首先,您的项目中是否有名为DataSource2的数据源?我以前遇到过这样的情况:Visual Studio报表设计器出于某种原因自动创建了一个我不知道的额外数据源,但在共享数据源文件夹下不可见

因此,您需要在VisualStudio中右键单击报表,然后单击“查看代码”以验证数据源。在我的例子中,我所要做的就是删除对不存在的数据源的任何引用,一切都按预期进行

否则,请查看SSRS日志以获得更详细的错误消息。日志应位于类似于C:\Program Files\Microsoft SQL Server\MSRS11.SQLPROD1\Reporting Services\LogFiles的位置


详细的错误消息是什么?

您的数据源可能配置为提示输入凭据。我认为您应该在报告中指定一个特定的用户名和密码。请参见下面的屏幕截图:


您什么时候设置凭据?确保将其作为ReportLoadedEventHandler添加到ReportLoaded