如何在asp.net应用程序中本地使用SSRS

时间:2017-08-01 17:13:36

标签: asp.net asp.net-mvc-4 reporting-services ssrs-2008 ssrs-2008-r2

我已经通过了许多链接,但现在我需要能够更好地帮助我的人。我既没有托管经验也没有SSRS经验。

在几个网站之后,我在已经存在的Asp.net MVC应用程序中添加了来自visual studio的商业智能 - >“报告项目”。然后我成功创建了两个rdl报告,我可以很好地预览。现在的问题是在asp.net应用程序中使用它们吗?

我做的步骤是:

1)打开IIS并创建一个新的网站,其物理目录为“我的路径”    SSRS项目“。如果我从中浏览此网站,我现在可以看到该位置    IIS。

2)现在来到asp.net代码。我已经添加了查看报告所需的基本代码,但问题是“路径”。我是否必须定义“本地服务器路径”或“远程”。两者有什么区别。它们是否需要该rdl文件的物理位置。如果它需要物理位置,那么我怎么能得到它,因为rdl文件在不同的项目中并且它不存在于我的主webapp中。我对此很困惑。有时我会在尝试提供应用程序路径时遇到错误。对于下面的代码,它向我显示了这个错误。

  

无法解析远程名称:'reportserver'

这是项目结构:

enter image description here

这就是我在控制器中的含义

    ReportViewer reportViewer = new ReportViewer
        {
            ProcessingMode = ProcessingMode.Remote
        };

        //reportViewer.LocalReport.ReportPath =
        //    Request.MapPath(Request.ApplicationPath) +
        //    "~/Reports/Report3.rdl";

        //reportViewer.LocalReport.ReportPath = Path.GetFullPath("~/ReportingProject/Reports/Report3.rdl");
        //reportViewer.LocalReport.ReportPath = Path.Combine("~/ReportingProject/Reports/Report3.rdl");

        reportViewer.ServerReport.ReportServerUrl = new Uri("http://ReportServer/Reports/report3.rdl");


        //string solutiondir = Directory.GetParent(
        //    Directory.GetCurrentDirectory()).Parent.FullName;
        //// may need to go one directory higher for solution directory
        //return XDocument.Load(solutiondir + "\\" + ProjectBName + "\\Mock\\myDoc.html")

        reportViewer.Width = Unit.Percentage(100);


        reportViewer.LocalReport.DataSources.Add(new
            ReportDataSource("DataSet1", objList));

        reportViewer.LocalReport.Refresh();

        ViewBag.ReportViewer = reportViewer;

1 个答案:

答案 0 :(得分:0)

也许您应该使用SOAP报告服务(请参阅https://technet.microsoft.com/en-us/library/reportservice2010.reportingservice2010.aspx)使用ListChildren()方法获取您想要的报告以及父文件夹(https://technet.microsoft.com/en-us/library/reportservice2010.reportingservice2010.listchildren.aspx)的路径。