25

我想在ASP.NET Core MVC 项目中使用 Reporting Services ReportViewer 控件。

其他答案中提出的解决方案是将网络表单添加到项目中。

但是,由于ASP.NET Core 不支持网络表单,我无法将控件添加到网络表单。

是否有任何其他解决方法可以帮助我在 ASP.NET Core Web 应用程序中使用 ReportViewer 控件?

4

2 回答 2

14

2019 年更新

我有 ReportViewer 在 Windows 上的 ASP.NET Core 上工作,大多数功能(不是 PDF 和图像/PowerPoint)也可以在 Linux 上的 ASP.NET Core 上工作。
不过,仍有一些错误需要清除。
您可以在此 github 问题中了解更多信息。

我不能公开发布它,因为 ReportViewer有一个相当严格的许可证......

它基于 amh1979 的AspNetCore.Reporting nuget。
您可以尝试围绕 ReportExecution.asmx 的包装器 nuget,同样是 amh1979,这没有许可问题,但它不是真正的 ReportViewer。


原帖:

不,你不能。
Microsoft 只是在评估创建 .NET Core ReportViewer 控件。
这意味着目前没有(05/2017)。
ASP.NET MVC 也没有任何 ReportViewer“控件”。

MS-ReportServer 的 ReportExecution.asmx 周围只有alanjuden 的包装器。
但这不一样。这仍然需要报表服务器上的 Windows 身份验证(以及用户必须是特定广告组的成员),以及在 Windows 上运行的 SSRS 服务器。

如果你在 Windows 上有一个 SSRS-ReportServer,你最好将 SSRS ReportViewer.aspx 嵌入到 iframe 中。您可能希望将表单身份验证添加到您的报告服务器。此外,如果需要跨平台(=跨浏览器=非 IE),则需要 SSRS >= 2016(跨浏览器在 SSRS 2005/2008R1/2008R2/2012/2014 中不可用)。

如果您在 Windows 上并且不希望(您的客户)必须安装特定版本的 SSRS(这意味着您必须获得 MS-SQL-Server 的许可),您可以创建一个 .NET 非核心 Web 应用程序在 IIS 上(在同一个域上),并共享 auth-cookie。然后,通过 iframe(或与 target=_blank 链接)在 .NET Core Web 应用程序中嵌入来自 IIS .NET 非核心应用程序的 ReportViewer。这样你就不需要 SQL-Server 许可证,如果你使用 MySQL/PostgreSQL/Oracle,也不需要 MS-SQL-Server。

除了等待之外,您还可以将 Apache Tomcat 与 BIRT 捆绑到您的应用程序中,并使用 Launch4J 将其与 JRE 一起重新分发。然后您只需要使用 Eclipse-BIRT ReportDesigner 来创建 BIRT 报告(非 SSRS 报告)。

或者您可以将 JasperReports 与 JasperServer 一起嵌入。
这将比 BIRT 更难进行 bin 部署。
但我猜码头工人来救援。

Jasper 和 BIRT 的优势在于它们也可以在 Linux/Mac 上运行。
但是,这意味着您需要在服务器上安装 JRE,或者将 JRE 与您的应用程序一起进行 bin 部署。

Jasper 相对于 BIRT 的优势在于它速度更快,并且它支持竖排文本(不仅仅是在 Web 中,竖排文本不会呈现为图像)。

从他们的网站下载的 BIRT 版本通常总是存在问题,这些问题首先会阻止运行 BIRT。是缺少 JAVA_HOME 环境变量、缺少 .jar 依赖项或 .jar 文件中的无效签名。有关您当时机器上的信息,请查阅 TOMCAT 日志文件,然后搜索问题。
BIRT 的好处在于,它相对容易进行 bin 部署。

如果你喜欢 nodeJS,另一个选择是 jsReports。
然而,没有安装和复杂性的 Bin-Deploy 将更加困难(PhantomJS、Webkit、wkHtmlToPdf - 例如在 Raspberry PI 上使用 ARM 处理器)。

如果您有几年的空闲时间,您也可以等到 SSRS 团队移植到 .NET Core - 如果真的发生这种情况,那就是。

于 2017-05-19T09:02:38.987 回答
3

这是一个适用于 ASP.NET MVC 和 ASP.NET Core 的报表查看器。

MVC .NET Core 报告查看器

于 2017-01-08T13:31:44.407 回答