代码之家  ›  专栏  ›  技术社区  ›  Eduardo Wada

上载SSRS报告会导致数据源需要凭据

  •  0
  • Eduardo Wada  · 技术社区  · 6 年前

    我当前有一个报告,其数据源不需要凭据

    Datasource doesn't require credentials

    我想通过编程将此报表上载到我的报表服务器,为此,我使用 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)
    

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

    Setting was changed from "Do not use credentials" to "Prompt for credentials"

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

    1 回复  |  直到 6 年前
        1
  •  0
  •   Eduardo Wada    6 年前

    我发现凭据设置可以通过 SetItemDataSources 方法

    Dim sources = service.GetItemDataSources(itemFullPath)
    
    For Each dataSource In sources
        CType(dataSource.Item, DataSourceDefinition).CredentialRetrieval = CredentialRetrievalEnum.None
    Next
    
    service.SetItemDataSources(itemFullPath, sources)
    

    当我第一次检查数据源项时,我忽略了一个事实,即我必须将其转换为 DataSourceDefinition 访问 CredentialRetrieval 所有物