1台のサーバーにSSRSをインストールしたSQLServer2008と、新しいサーバーにSSRSをインストールしたSQL Server2008R2があります。SSRS WebサービスAPIを使用して、200以上のレポートと、いくつかの共有スケジュールおよびいくつかのデータソースを最初のサーバーから2番目のサーバーに移行したいと思います。簡単にするために、共有データソースは2つしかないため、先に進み、レポートマネージャーインターフェイスを使用してそれらを作成しました。
残念ながら、私の前に来た人は、各レポートにデータソース情報(接続文字列、ログイン、パスワードなど)を埋め込みました。共有データソースを指すようにこれらを変更するのに最適な時期だと思いました。これにより、レポートごとに1つずつ行う必要がなくなります。CreateCatalogItemを使用して新しいサーバーでレポートを問題なく作成できますが、埋め込みデータソースから共有データソースに適切に変更する方法を判断できないようです。
これまで、両方のSetItemReferencesを試しました。
itemRef.Reference = "/Data Sources/TMS";
itemRef.Name = "TMS";
itemRef.Reference = "/Data Sources/TMS";
rs2010.SetItemReferences(catItem.Path, new ReportService2010.ItemReference[] { itemRef });
およびSetItemDataSources:
ReportService2010.DataSourceReference dataSourceRef = new ReportService2010.DataSourceReference();
dataSourceRef.Reference = "/Data Sources/TMS";
ReportService2010.DataSource dataSource = new ReportService2010.DataSource();
dataSource.Name = "TMS";
dataSource.Item = dataSourceRef;
rs2010.SetItemDataSources(catItem.Path, new ReportService2010.DataSource[] { dataSource });
どちらの方法でも、データソースが埋め込まれたレポートで試行すると「NotFoundException」が発生しますが、共有データソースを既に指しているレポートではどちらも問題なく機能します。
さらに、Google全体とStackOverflowで解決策を検索しましたが、何も見つかりませんでした。誰かが私をここで正しい方向に向けることができますか?