报表查看器无法访问其他数据库服务器中的报表

时间:2012-04-06 08:23:39

标签: c# asp.net ssrs-2008

我在应用服务器上发布的asp.net 3.5中有一个Web应用程序。我在数据库服务器中部署的SSRS报告很少,需要从Web应用程序访问。服务器在同一个网络中。我使用的是报告查看器控件以显示报告,我正在动态传递报告路径。我还从后面的代码发送登录凭据。

问题是报告被正确识别并且还显示了正确的报告参数。但是当我单击视图报告按钮时没有数据出现。我有Sql server 2008 r2和报告查看器版本9.0

请帮我解决这个问题。这是一段代码片段......

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        ReportViewer1.ShowCredentialPrompts = false;

        IReportServerCredentials irsc = 
            new CustomReportCredentials("user", "pass", "domain");

        ReportViewer1.ServerReport.ReportServerCredentials = irsc;
        ReportViewer1.ServerReport.ReportServerUrl = 
            new Uri("http://72.0.170.205:80/ReportServer");

        ReportViewer1.ShowParameterPrompts = true;
        ReportViewer1.ShowPrintButton = true;
        ReportViewer1.ProcessingMode = ProcessingMode.Remote;

        ReportViewer1.ServerReport.Refresh();

        ReportViewer1.ServerReport.ReportPath = Request.QueryString["val"];
    }
}

2 个答案:

答案 0 :(得分:0)

您是否使用http://72.0.170.205:80/Reports上的相同凭据检查报告是否正常运行?

不知道这是否有任何帮助,但这是我在实施中看到的差异:

  • 我不会调用ReportViewer1.ServerReport.Refresh();
  • 我称之为.RegisterRequiresViewStateEncryption(); (不得不禁用它)
  • 我的reportDisplay应用程序不是根应用程序。由于冲突,回到SSRS2005,我不得不在web.config中为其会话cookie使用不同的名称。从那时起保持它

     <sessionState cookieless="UseCookies" cookieName="ASP.NET_SessionId.myCustomName"/>
    

答案 1 :(得分:0)

受保护的Sub Load_Report()         将昏暗的连接作为新的SqlConnection(Connection_String)'服务器连接字符串

    Dim Data_Table As New DataTable("DataTable1") *'Create New Data Table in DataSet having same columns as are there in your Datatable*
    Dim Query As String
    Query = "SELECT Caption,Mobile,Age,City FROM Bond.Book"
    Dim Command As New SqlCommand(Query, Connection)
    Dim Table_Adapter As New SqlDataAdapter(Command)
    Table_Adapter.Fill(Data_Table)
    ReportViewer1.ProcessingMode = ProcessingMode.Local
    ReportViewer1.LocalReport.ReportPath = Server.MapPath("Book.rdlc")
    ReportViewer1.LocalReport.DataSources.Clear()
    ReportViewer1.LocalReport.DataSources.Add(New ReportDataSource("Book_DataSet", Data_Table))
    ReportViewer1.LocalReport.Refresh()
End Sub

这对我有用。我能够在服务器上加载报表查看器并查看服务器数据