我想在ASP.NET Core MVC
项目中使用 Reporting Services ReportViewer 控件。
其他答案中提出的解决方案是将网络表单添加到项目中。
但是,由于ASP.NET Core
不支持网络表单,我无法将控件添加到网络表单。
是否有任何其他解决方法可以帮助我在 ASP.NET Core Web 应用程序中使用 ReportViewer 控件?
我想在ASP.NET Core MVC
项目中使用 Reporting Services ReportViewer 控件。
其他答案中提出的解决方案是将网络表单添加到项目中。
但是,由于ASP.NET Core
不支持网络表单,我无法将控件添加到网络表单。
是否有任何其他解决方法可以帮助我在 ASP.NET Core Web 应用程序中使用 ReportViewer 控件?
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 - 如果真的发生这种情况,那就是。
这是一个适用于 ASP.NET MVC 和 ASP.NET Core 的报表查看器。