基本上我有一个报告服务器,其中包含我需要迁移到新SSRS服务器的“我的报告”报告。
问题:
是否可以轻松获取所有physical.RDL文件,而无需从旧服务器界面逐个导出文件,然后使用新服务器界面上传?
期待您的回复
史蒂芬
答案 0 :(得分:1)
此处有第三方工具可让您批量下载/上传rdls。
答案 1 :(得分:1)
您可以使用SSRS Web服务API编写一个小型.NET应用程序来检索它们。 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"));
}
如果您在此代码中编写一些循环(部分),您可以快速获取所有文件。