我正尝试在多租户情况下使用SSRS。我们想要支持的基本版本是SQL Server 2008,但是如果需要R2,我们可能会确定。如何将嵌入式数据源添加到C#代码中的RDL中?
我目前正在使用ReportingService2005.asmx端点似乎公开ReportService2005SoapClient类(即使所有示例似乎显示ReportingService2005类)。
当我们运行一个报告时,我想从服务器复制该报告,添加一个嵌入式数据源,将数据集指向该数据源,然后运行报告。
据我得到的:
从服务器
获得RDL修改XML以添加数据源
指向的数据集,以指向新的数据源
...但是当我尝试“Crea teReport”我得到以下错误:
System.Web.Services.Protocols.SoapException: The dataset ‘DataSet1’ refers to the data source “mydatasource_LOCAL”, which does not exist.
at Microsoft.ReportingServices.Library.ReportingService2005Impl.ExecuteBatch(Guid batchId)
at Microsoft.ReportingServices.WebServer.ReportingService2005.ExecuteBatch()
我已经添加数据集到RDL,它的外观一样,当我在设计中添加一个。但是,我认为需要将某些内容添加到服务器中?我错过了什么? (作为一个例外,我知道MS Dynamics在单一实例中启用了多租户SSRS,但我没有看到他们如何做到这一点的信息,如果他们有任何代码或任何他们共享某人可能会指向我太棒了。)
当我在报表中使用嵌入式数据源时,我没有看到它部署数据源,只有当我创建共享数据源时。我会仔细检查确定。 (是的,使用该端点是因为我们需要支持SQL Server 2008及更高版本)。 – PilotBob 2013-05-07 21:25:56
它在我部署报表时在数据源在报表管理器数据库中创建时显示。它有一个与报告相匹配的项目ID。但是,如何获取我无法创建的报告的itemid以创建已创建的源? – PilotBob 2013-05-08 18:29:23
似乎我不必修改RDL。只需克隆该报告,然后使用为该报告创建嵌入式数据源的SetItemDataSources。 – PilotBob 2013-05-08 20:23:23