在我的mvc项目中,报告部署在单独的SSRS服务器上,我们在iframe的帮助下加载SSRS报告,问题在于它在使用iframe访问报告时询问用户名和密码。要删除用户ID和密码提示,我试图实现this link上提供的解决方案 我更改了ReportTemplate.aspx.cs文件中的代码,如下所示,以发送引用this link的凭据:
rvSiteMapping.Width = 800;
rvSiteMapping.Height = 600;
rvSiteMapping.ProcessingMode = ProcessingMode.Remote;
IReportServerCredentials irsc = new CustomReportCredentials(@"userid", "password", @"\");
rvSiteMapping.ServerReport.ReportServerCredentials = irsc;
rvSiteMapping.ShowCredentialPrompts = true;
rvSiteMapping.ServerReport.ReportServerUrl = new Uri("http://12.25.2.24/Reports");
rvSiteMapping.ServerReport.ReportPath = "/report/AssetDetail";
rvSiteMapping.ServerReport.Refresh();
我收到以下错误:
基础连接已关闭:发送时发生意外错误。 无法从传输连接读取数据:远程主机强制关闭现有连接。 远程主机
强制关闭现有连接
然而,它与以下代码完美配合:
rvSiteMapping.Width = 800;
rvSiteMapping.Height = 600;
rvSiteMapping.ProcessingMode = ProcessingMode.Local;
ReportsDataSet ds = new ReportsDataSet();
var connectionString = ConfigurationManager.ConnectionStrings["LowryATS_Tenant2ConnectionString"].ConnectionString;
SqlConnection conx = new SqlConnection(connectionString);
SqlDataAdapter adp = new SqlDataAdapter("SELECT * FROM Assets", conx);
adp.Fill(ds, ds.Assets.TableName);
rvSiteMapping.LocalReport.ReportPath = Request.MapPath(Request.ApplicationPath) + @"AssetReport.rdlc";
rvSiteMapping.LocalReport.DataSources.Add(new ReportDataSource("ReportsDataSet", ds.Tables[0]));
任何人都可以帮我解决这个问题。我们在ssrs服务器上使用ssrs 2016。