2016-12-08 131 views
0

我有兩臺運行相同配置的SSRS服務器。呃,實際上,三個。讓我們稱他們爲:使用相同的ReportingService2010對象調用不同的服務器

  • 報告服務的
  • 報告服務的測試
  • 報告服務器B

現在,我可以A和A-測試之間輕鬆交換這取決於我是否」 m在測試或生產中使用web.config轉換。這很好。

然而,在運行時我想能夠發送呼叫服務器A和B.

我可能通過創建兩個不同的ReportingService2010的對象,這之間切換:一個命名空間com.company.serverA另一個是命名空間com.company.serverB。這將需要大量的條件語句,但可以完成。

我希望能夠使用多態性並傳遞我的ReportCopier類不同的ReportingService2010對象,但它們之間的關係不夠緊密。編譯器將它們視爲完全獨立的對象。

有沒有辦法解決這個問題?有什麼方法可以動態地更改ReportingService2010對象在運行時指向的URL?有沒有辦法通過反射來處理這兩種對象?

現在唯一的解決方案是1)爲所有對象實現包裝類,這看起來很單調,或者2)使用ReportCopier類的兩個副本,只改變它們之間的名稱空間,這很醜。

想法?

+0

您是否在尋找[Load Balancing](https://msdn.microsoft.com/zh-cn/library/cc281307.aspx)? – SMM

+0

不,我們有兩個基本相同的副本,因爲我們收購了一家公司,而且他們有自己的實例。 –

回答

0

這是迄今爲止我發現的一個棘手問題最頭疼的簡單解決方案:我可以設置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"; 
相關問題