【问题标题】:Calling different servers with the same ReportingService2010 object使用相同的 ReportingService2010 对象调用不同的服务器
【发布时间】:2016-12-08 20:07:05
【问题描述】:

我有两台运行相同配置的 SSRS 服务器。嗯,实际上是三个。让我们称呼他们:

  • 报告服务器 A
  • 报告服务器 A 测试
  • 报告服务器 B

现在,我可以使用 web.config 转换轻松地在 A 和 A-test 之间切换,具体取决于我是在测试中还是在生产中。所以没关系。

但是,在运行时,我希望能够在向服务器 A 和 B 发送调用之间切换。

我可以通过创建两个不同的 ReportingService2010 对象来实现这一点:一个具有命名空间 com.company.serverA,另一个具有命名空间 com.company.serverB。这需要很多条件语句,但可以做到。

我希望能够使用多态性并通过我的 ReportCopier 类传递不同的 ReportingService2010 对象,但它们之间的关系不够密切。编译器将它们视为完全独立的对象。

有没有办法解决这个问题?有什么方法可以动态更改 ReportingService2010 对象在运行时指向的 URL?有没有办法通过某种方式使用反射来处理这两种对象?

现在我唯一的解决方案是 1) 为所有看起来乏味的对象实现包装类,或者 2) 使用 ReportCopier 类的两个副本,只在它们之间更改命名空间,这很难看。

想法?

【问题讨论】:

  • 您在寻找Load Balancing吗?
  • 不,我们有两个基本相同的副本在运行,因为我们收购了一家公司,他们有自己的实例。

标签: c# reporting-services ssrs-2012 web-reference


【解决方案1】:

这是迄今为止我为一个棘手的问题找到的最简单的解决方案:我可以设置 URL 属性。我太忙于担心继承而无法实现它。

ReportingService2010 rs = new ReportingService2010();
rs.Url = "https://serverA.company.com:443/ReportServer/ReportService2010.asmx";
// or...
rs.Url = "https://serverB.company.com:443/ReportServer/ReportService2010.asmx";

【讨论】:

    猜你喜欢
    • 2018-01-04
    • 2020-03-05
    • 2021-09-01
    • 1970-01-01
    • 2012-08-13
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多