Ssrs 2008 如何调试在我的应用程序中不起作用的服务器端(.rdl)报表?

Ssrs 2008 如何调试在我的应用程序中不起作用的服务器端(.rdl)报表?,ssrs-2008,report,reportviewer,server-side,Ssrs 2008,Report,Reportviewer,Server Side,我有一个SQL Server报表服务器SSRS,它承载一组报表。当我单击提供的URL时,我可以导航到报告,沿着路径向下钻取,通过向报告传递所需的参数,我可以成功地运行报告。报表使用的存储过程托管在使用Windows身份验证的数据库中 然而,当我试图从我的应用程序调用相同的报告时,我看不到任何东西 这是我使用的代码。单击按钮后,我执行以下代码: var reportViewer = new ReportViewer(); // Set Processing Mode reportViewer.P

我有一个SQL Server报表服务器SSRS,它承载一组报表。当我单击提供的URL时,我可以导航到报告,沿着路径向下钻取,通过向报告传递所需的参数,我可以成功地运行报告。报表使用的存储过程托管在使用Windows身份验证的数据库中

然而,当我试图从我的应用程序调用相同的报告时,我看不到任何东西

这是我使用的代码。单击按钮后,我执行以下代码:

var reportViewer = new ReportViewer();

// Set Processing Mode
reportViewer.ProcessingMode = ProcessingMode.Remote;

// Set report server and report path
reportViewer.ServerReport.ReportServerUrl = new Uri("http://MySsrsServer/reportserver");
reportViewer.ServerReport.ReportPath = "/Reports/MyReport";

// set the credentials
reportViewer.ServerReport.ReportServerCredentials.ImpersonationUser = WindowsIdentity.GetCurrent();

// create report parameters and set them in the report
var param1 = new ReportParameter("First_Param", "Some string");
var param2 = new ReportParameter("Second_Param", "Some other string");
reportViewer.ServerReport.SetParameters(new ReportParameter[] { param1, param2 });


using (var reportForm = new ReportForm(reportViewer))
{
   reportForm.ShowDialog();
}
ReportForm只是一个常规表单,其成员类型为ReportViewer。在类构造函数中,我分配成员:

public ReportForm(ReportViewer reportViewer)
{
   InitializeComponent();

   try
   {
      this.reportViewer = reportViewer;

      reportViewer.SetDisplayMode(DisplayMode.PrintLayout);

      reportViewer.Dock = DockStyle.Fill;

      reportViewer.ZoomMode = ZoomMode.Percent;
      reportViewer.ZoomPercent = 100;
      reportViewer.RefreshReport();
   }
   catch (Exception exception)
   {
      MessageBox.Show(exception.Message);
   }
}
正如我所说,我可以看到报告在服务器上正确执行,但在我的应用程序中没有。ReportForm的内容是空的,但是我没有得到任何抛出的异常

知道我做错了什么吗

蒂亚,
E

结果表明,在要显示报表的窗体外部构造ReportViewer对象,然后将其传递到窗体的构造函数内部,以便将其分配给内部ReportViewer对象不是一个好主意。我不知道幕后发生了什么,可能是ReportViewr实例和GUI控件(用于显示报表)之间的一些绑定被破坏了。

进一步回答我的问题,使用数据库跟踪,我们可以确认报表使用的存储过程是使用正确的参数调用的,并且它们返回正确的数据。为什么报表结果显示为空?是否有一种方法可以跟踪报表服务器内部并查看发生了什么?