2016-12-08 18 views
0

同じ設定を実行する2つのSSRSサーバーがあります。まあ、3つ。それらを呼ぶことにしましょう:同じReportingService2010オブジェクトを持つ異なるサーバーを呼び出す

  • Reporting ServerのA今、サーバーB

を報告

  • Reporting ServerのA-テスト
  • 、私は簡単に私が「かどうかに応じてAとテストの間で入れ替えることができますテストやプロダクションでは、web.configトランスフォームを使用します。だからそれはいいです。

    しかし、実行時に私は、私は潜在的に二つの異なるReportingService2010オブジェクトを作成することによってこれを行うことができますサーバーAとB.

    への呼び出しを送信して切り替えることができるようにしたい:名前空間com.company.serverAと一つにもう一方は名前空間com.company.serverBを使用します。それは多くの条件文を必要とするでしょうが、それはできます。

    多形性を使用し、ReportCopierクラスの異なるReportingService2010オブジェクトを渡すことができますが、密接に関連しているとは限りません。コンパイラはそれらを完全に別々のオブジェクトのように扱います。

    これを回避する手段はありますか?実行時にReportingService2010オブジェクトが指しているURLを動的に変更する方法はありますか?どういうわけか、反射を使って両方の種類のオブジェクトに対処する方法はありますか?

    今私が持っている唯一の解決策は、1)退屈なように見えるすべてのオブジェクトのラッパークラスを実装するか、2)ReportCopierクラスの2つのコピーを使用して、名前空間が変更されていて醜いです。

    思考?

  • +0

    [負荷分散](https://msdn.microsoft.com/en-us/library/cc281307.aspx)をお探しですか? – SMM

    +0

    いいえ、私たちは会社を買収し、独自のインスタンスを持っているため、2つの基本的に同一のコピーを実行しています。 –

    答えて

    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"; 
    
    関連する問題