【问题标题】:Unrecognized SSRS parameters无法识别的 SSRS 参数
【发布时间】:2014-08-18 20:09:23
【问题描述】:

我正在开发一个 SSIS 2012 包,它使用脚本任务通过使用 SOAP 的 Web 服务从 SSRS 服务器加载和呈现 SSRS 2012 报告。我的问题在于设置参数值的代码。当下面的代码运行时,我在尝试执行 rs.SetExecutionParameters 方法时收到以下 SOAP 错误消息:

Microsoft.ReportingServices.Diagnostics.Utilities.UnknownReportParameterException:尝试设置此报告中未定义的报告参数“prmDomainID”。

然而,如果我在设计模式下打开报表,参数显然就在那里。并在运行时检查 execInfo 变量,也显示参数在那里。我尝试删除服务器上的报告并重新部署它,但没有奏效。我尝试更改参数名称以包含前导“@”符号,但这也不起作用。我已经确保参数数据类型(整数)与我传入的值的类型匹配。我已经搜索了几个小时,似乎没有任何东西可以识别我传入的参数。(注意 prmDomainID 参数设置为可见。不确定这是否重要。)

我在这里错过了什么?

Dim rs As New ReportExecutionService
Dim format As String = "HTML4.0"
Dim mimeType As String = Nothing
Dim historyID As String = Nothing
Dim deviceInfo As String = Nothing
Dim extension As String = Nothing
Dim encoding As String = Nothing
Dim warnings() As Warning = Nothing
Dim streamIDs() As String = Nothing
Dim results() As Byte
Dim execInfo As New ExecutionInfo
Dim parameters(1) As ParameterValue

parameters(0) = New ParameterValue()
parameters(0).Name = "prmDomainID"
parameters(0).Value = "15"

With rs
    .Credentials = System.Net.CredentialCache.DefaultCredentials
    execInfo = .LoadReport(ReportPath, historyID)
    .SetExecutionParameters(parameters, "en-us")

    results = .Render(format, deviceInfo, extension, mimeType, encoding, warnings, streamIDs)
End With

Return System.Text.Encoding.Default.GetString(results)

【问题讨论】:

    标签: soap reporting-services parameters


    【解决方案1】:

    你让这个工作了吗?我已经看了又看 - 我唯一看到的是我没有看到你的 ReportPath 设置在哪里 - 但我认为这是因为你在 execInfo 中有数据......所以我看到的唯一另一件事是你没有设置 ExecutionHeaderValue...

    所以添加此代码并试一试...

    Dim execHeader as New ExecutionHeader()
    rs.ExecutionHeaderValue = execHeader
    

    确保你把它放在execInfo = .LoadReport(ReportPath, historyID)之前

    我尝试将我的 c# 代码转换为 VB - 所以您可能需要验证语法!

    【讨论】:

      猜你喜欢
      • 2019-07-14
      • 2013-08-09
      • 2015-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-20
      • 2019-05-16
      相关资源
      最近更新 更多