首页 > 解决方案 > 从 SSRS 服务器加载 SSRS 报告时出错

问题描述

在我的 mvc 项目中,报告部署在单独的 SSRS 服务器上,我们在 iframe 的帮助下加载 SSRS 报告,问题是它在使用 iframe 访问报告时要求用户名和密码。要删除用户 id 和密码提示,我试图实现此链接上提供的解决方案 ,我更改了 ReportTemplate.aspx.cs 文件中的代码,如下所示以发送引用此链接的凭据:

    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。

标签: c#reporting-servicesreportingssrs-2016

解决方案


推荐阅读