【问题标题】:Uploading SSRS report causes datasource to require credentials上传 SSRS 报告会导致数据源需要凭据
【发布时间】:2018-05-04 13:32:52
【问题描述】:

我目前有一份报告,其数据源不需要凭据

我想以编程方式将此报告上传到我的报告服务器,为此,我使用ReportingService2010 类和以下代码。 https://msdn.microsoft.com/en-us/library/reportservice2010.reportingservice2010_methods.aspx

Dim service As New ReportingService2010()
service.Credentials = System.Net.CredentialCache.DefaultCredentials  
service.Url = _reportServerUrl & "/reportservice2010.asmx?"
service.CreateCatalogItem("Report", reportName, pathinServer, True,
                              fileBytes, Nothing, warnings)

这会上传报告,问题是报告的数据源配置在上传后没有被保留。

我的问题是为什么会发生这种情况以及解决方法是什么?我找不到以编程方式更改此设置的方法。

【问题讨论】:

  • 部署时可以选择覆盖数据源。也可以在服务器上更改或者删除重新部署
  • 这是第一次部署,没有被覆盖
  • 实际上,我目前的解决方法是为所有报告手动更改此设置,然后在随后的时间中不会发生这种情况,但每次收到新报告时我都会再次获取它。

标签: .net reporting-services


【解决方案1】:

我发现可以使用SetItemDataSources 方法更改凭据设置。

Dim sources = service.GetItemDataSources(itemFullPath)

For Each dataSource In sources
    CType(dataSource.Item, DataSourceDefinition).CredentialRetrieval = CredentialRetrievalEnum.None
Next

service.SetItemDataSources(itemFullPath, sources)

当我第一次检查 dataSource 项目时,我错过了必须将其转换为 DataSourceDefinition 才能访问 CredentialRetrieval 属性的事实

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 2013-04-24
    相关资源
    最近更新 更多