防火墙后的 s-s-rs 报告服务器

Posted

技术标签:

【中文标题】防火墙后的 s-s-rs 报告服务器【英文标题】:s-s-rs report server behind firewall 【发布时间】:2013-01-29 20:26:57 【问题描述】:

我们的内部网络上有一个 s-s-rS 报告服务器 2008(不是 R2),它包含我们希望 Internet 上的用户能够运行的报告(和数据)。我们创建了一个 vb.net Web 应用程序,用户将登录并从中运行报告。该应用程序在我们的 DMZ 中运行,并通过一个开放端口连接到 SQL Server 数据库(与 s-s-rS 在同一台服务器上运行)。

我怀疑我们必须使用 s-s-rS Web 服务来访问报告,因为 url 访问需要向外部打开 SQL 报告服务器(我们不想这样做)。对吗?

我在 Web 应用程序中创建了一个页面,该页面可以将 s-s-rS 报告呈现到文件中,但我想在网页上向用户显示该报告(并且仍然提供保存报告的功能)。我需要做什么?我可以在 Report Viewer 或其他控件中显示 Render 命令的结果吗?

指向示例的指针会很棒。

谢谢

【问题讨论】:

【参考方案1】:

您正在寻找ReportViewer Controls,特别是Web 版本(还有一个WinForms 版本):

如果您将其合并到您的 Web 应用程序中,您将获得一个可以放置在任何页面上的控件; 该控件可以从 Web 服务器连接到您的 SQL 后端,因此您不必将您的 SQL 后端暴露给其他任何人; 默认情况下,控件在浏览器中呈现(使用 html 呈现器),为用户提供良好的预览。 该控件带有一个漂亮的toolbar,允许导航、搜索、打印以及导出(即保存)为各种格式。

查看the download link for Microsoft Report Viewer 2010 Redistributable Package,其中包含 Web 和 WinForms 控件。

PS。直接向世界开放 s-s-rS Web 服务并不是您通常想要做的事情。 Web 服务非常适合与您自己的应用程序进行安全通信,并为您提供一些更细粒度的控制(正如您所指出的,通过创建一个页面来导出/呈现报告)。但是,如果要为网站提供报告,我建议使用 ReportViewer。

【讨论】:

我使用 url 访问来在 reportViewer 控件中显示报表,但我认为它需要访问报表服务器才能访问报表定义。您是否建议在外部服务器上打开报告定义文件?它会知道从哪里获取数据而不访问报表服务器? 这取决于Processing Mode:Local = web 服务器让 ReportViewer 控件自己处理所有内容,Remote = reportviewer 将所有内容中继到报表服务器。另请参阅 s-s-rS Credentials MSDN page 和 ServerReport Class MSDN page 了解更多信息。

以上是关于防火墙后的 s-s-rs 报告服务器的主要内容,如果未能解决你的问题,请参考以下文章

通过外部服务器 SSH 防火墙后的两台计算机

静态PAT动态PAT实验报告

s-s-rS 报告 - 从没有 s-s-rS 服务器的 C# 导出

网络相关的命令工具研究报告

移动设备的 *** 连接停止工作,即使 Sonicwall 报告它们成功

ros防火墙实验报告