基本上我有其中包含的「我的報告」的報道,我需要遷移到新的SSRS服務器負載一個報告服務器。SSRS - 獲取物理報告文件
問:
是他們的一種簡單的方法來獲取所有physical.RDL文件,而無需將文件一個接一個從舊服務器接口導出,然後上傳使用新的服務器接口?
期待您的回覆
史蒂芬
基本上我有其中包含的「我的報告」的報道,我需要遷移到新的SSRS服務器負載一個報告服務器。SSRS - 獲取物理報告文件
問:
是他們的一種簡單的方法來獲取所有physical.RDL文件,而無需將文件一個接一個從舊服務器接口導出,然後上傳使用新的服務器接口?
期待您的回覆
史蒂芬
有可以在這裏找到第三方的工具,可以讓你批量下載/上傳的RDL。
你可以寫一個小的.NET應用檢索他們的所有,使用SSRS Web服務API。該article on the GetItemDefinition方法示例代碼來獲得一個文件,這裏有一個相關的片段(複製/粘貼警示!):
ReportingService2010 rs = new ReportingService2010();
rs.Url = "http://<Server Name>/_vti_bin/ReportServer/ReportService2010.asmx";
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
string reportName = "http://<Server Name>/Docs/Documents"
+ "/AdventureWorks Sample Reports/Sales Order Detail.rdl";
byte[] reportDefinition = null;
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
try
{
reportDefinition = rs.GetItemDefinition(reportName);
MemoryStream stream = new MemoryStream(reportDefinition);
string myDocumentsFolder = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
doc.Load(stream);
doc.Save(Path.Combine(myDocumentsFolder, "Sales Order Detail.rdl"));
}
如果你寫一個小環周圍(的一部分)這個代碼,你可能能夠迅速抓住所有的文件。
我下載了這一點,但無法得到它連接 – swade1987
嗯,不知道。在SSRS 2008上爲我工作,我不敢在這裏測試其他版本。 –