在 ReportExecution2005.asmx SSRS 服务上调用 Render 方法时,snapshotID 参数类型不匹配

2024-01-30

我正在尝试使用具有 MSSQL 2012 后端的 SSRS 2012 服务器上的 ReportExecution2005.asmx 服务端点将报告呈现为 PDF。当我在 Web 服务上调用 Render 方法时,出现以下错误: 为“snapshotID”提供的参数值与参数类型不匹配。 ---> Microsoft.ReportingServices.Diagnostics.Utilities.ParameterTypeMismatchException:为“snapshotID”提供的参数值与参数类型不匹配。 ---> System.FormatException:字符串未被识别为有效的日期时间

我尝试呈现的任何报告都会发生此错误,snapshotID 不是报告上的参数,并且检查报告的配置,它们未设置为缓存或使用快照。我们最近刚刚从 MSSQL 2005 迁移到 2012,将 ReportExecution2005 端点与 SSRS 和 SQL 2005 一起使用,我从未见过此错误,它工作得很好。我尝试添加 snapshotID 作为具有不同值(例如空字符串、当前时间等)的参数,但这显然不是它想要的。下面是我用来设置和调用服务的 Render 方法的代码。在我的例子中,pstrExportFormat 将为“PDF”

   Public Function ExportReport(pstrReportPath As String, plstParams As List(Of ReportParameter), pstrExportFormat As String) As Byte()
  Dim lResults() As Byte = Nothing
  Dim lstrSessionId As String
  Dim execInfo As New reporting.ExecutionInfo
  Dim execHeader As New reporting.ExecutionHeader
  Dim lstrHistoryId As String = String.Empty

  Try
     Dim rs As New reporting.ReportExecutionService
     Dim deviceInfo As String = "<DeviceInfo><PageHeight>8.5in</PageHeight><PageWidth>11in</PageWidth><MarginLeft>0.25in</MarginLeft><MarginRight>0.25in</MarginRight><MarginTop>0.25in</MarginTop><MarginBottom>0.25in</MarginBottom></DeviceInfo>"
     rs.Credentials = System.Net.CredentialCache.DefaultCredentials
     Dim params As New List(Of reporting.ParameterValue)
     Dim param As reporting.ParameterValue
     rs.Credentials = System.Net.CredentialCache.DefaultCredentials

     For Each lInputParam In plstParams
        param = New reporting.ParameterValue
        param.Name = lInputParam.Name
        param.Value = lInputParam.Value
        params.Add(param)
     Next

     rs.ExecutionHeaderValue = execHeader
     execInfo = rs.LoadReport(pstrReportPath, lstrHistoryId)
     rs.SetExecutionParameters(params.ToArray, "en-us")

     lResults = rs.Render(pstrExportFormat, deviceInfo, "", "", "", Nothing, Nothing)
  Catch ex As Exception
     Throw
  End Try
  Return lResults

结束功能

一些附加信息,此代码来自 VS 2012 Pro 中内置的应用程序,面向 .NET 2.0 框架。我尝试过针对较新的框架,但这给了我一个完全不同的 ReportExecutionService 对象,并且我无法以相同的方式分配凭据,在这种情况下,Render 方法也不同。

关于解决方法的任何想法,或者以编程方式呈现报告的更好方法?谢谢。


我今天遇到了完全相同的问题,并发现在 LoadReport 方法中,您需要确保 HistoryID 的值为 Nothing(C# 中为 null)。现在,您用空字符串传递它 - 将声明更改为

  Dim lstrHistoryId As String = Nothing

或者将您的方法调用更改为

rs.LoadReport(pstrReportPath, Nothing)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ReportExecution2005.asmx SSRS 服务上调用 Render 方法时,snapshotID 参数类型不匹配 的相关文章

  • 如何为不存在的值创建一行并用 0 值填充计数?

    在 SQL Server 中 我对数据上的用户年龄组运行查询 其中 在某些年里 每个年龄组的用户数为零 例如 2013 年有 18 21 年龄组的用户 因此查询返回下一个年龄组 22 25 作为第一行 因为没有包含 18 21 的条目 相反
  • 如何在浏览时检查客户端是否安装了 SQLNCLI10 提供程序?

    我有一个 C 网站 允许客户端从其 PC 直接连接到远程 SQL Server 数据库 通过使用第 3 方 ActiveX 控件绕过 Web 服务器 我最初使用的是SQLOLEDB提供商并且运行良好 客户端位于内部网络中 使用 Window
  • T-SQL - 字符串连接

    希望有人可以提供帮助 我是一个新手 SQL 黑客 而且确实很糟糕 我在 SQL Server 2005 上有两个表 TABLE 1 和 TABLE2 TABLE1 COL1 COL2 1 10 2 20 3 30 4 10 4 20 5 2
  • 有没有办法让这个UDF具有确定性?

    我认为这不是确定性的 因为DB NAME 是不是确定性的 如果DB NAME 不是确定性的 为什么不是确定性的 ALTER FUNCTION TheSchema udf IS PRODUCTION RETURNS bit WITH SCHE
  • 大表的最佳主键格式

    我正在开发一个 ASP NET 应用程序 它有一些可能很大的数据表 我想知道定义主键的最佳方法是什么 我知道以前已经有人问过这个问题 但由于这是针对特定情况的 所以我认为这个问题是有效的 我在 SQL Server 2008 数据库上使用实
  • DBCC命令是存储过程还是函数?

    应该是什么DBCC命令被调用 DBCC 过程还是 DBCC 函数 这很令人困惑 因为DBCC PAGE可以在不加前缀的情况下执行EXEC语句很像存储过程 但EXEC DBCC PAGE 1 1 1 3 抛出错误 语法错误 消息 156 关键
  • django pyodbc 数据源名称未找到

    当尝试连接到我的数据库服务器和 Django 中的数据库时 我收到错误 django db utils InterfaceError IM002 IM002 Microsoft ODBC Driver Manager 未找到数据源名称且未指
  • 如何在存储过程中使用名称求和和分组?

    我想对钱列求和 但我想要状态中的组名称和代码 这是存储过程代码 Sql Server 2008 SELECT um upmoney as money um pId as code um FName as name up status as
  • .net Framework 4.0 中地理 SQL Server 数据类型的 C# 等效项是什么?

    net web应用程序使用 net 4 0框架 我有一个存储过程 它接受 sql server 2008 R2 中的地理数据类型 我想将 C 代码中的数据插入 SQL Server 但我无法找到应在 C 中使用哪种与 SQL Server
  • 使用 https 的 Web 服务身份验证给出错误

    我编写了一个简单的 Web 服务 并使用摘要和 HTTPS 身份验证来保护它 我已经使用 Java 中的 keytool 生成了我的证书 当我通过创建 war 文件在 Tomcat 中部署 Web 服务时 axis 的欢迎页面正确显示 但是
  • 不同提供商的相同 EDMX 文件

    我正在开发一个项目 其中有一个本地数据库 SQL CE 在不存在与服务器的连接的情况下用作缓冲区 在服务器上我想使用相同的数据库布局 当然 我想使用服务器和客户端上可用的 Common dll 中的相同 EDMX 文件 在客户端中 我有一个
  • 如何向WebRequest添加参数?

    我需要从 Web 服务调用一个方法 所以我编写了以下代码 private string urlPath http xxx xxx xxx manager string request urlPath index php org get or
  • 如何在 ColdFusion 中对 SOAP 请求正文进行数字签名?

    对我来说是新的挑战 我需要使用提供商颁发的证书对来自 ColdFusion 客户端应用程序的 SOAP 请求正文进行数字签名和加密 我还需要解密响应才能处理它 我已经搜索了几天 但一无所获 我找到了引用其他语言的信息 但在 ColdFusi
  • MSSQL:如何使用代码编写存储过程创建脚本?

    我正在尝试使用一个数据库中存在但另一个数据库中不存在的 information schema routines 查询存储过程定义列表 SELECT t1 Routine Definition FROM server1 MyDatabase
  • 如何更改 JAX-WS Web 服务的地址位置

    我们目前已经公开了具有以下 URL 的 JAX RPC Web 服务 http xx xx xx xx myservice MYGatewaySoapHttpPort wsdl http xx xx xx xx myservice MYGa
  • 从 bak 文件恢复数据库 sql server 的脚本不起作用

    我有一个空数据库 DB Clients 我想从一个恢复数据库 bak file OldDBClients bak 这是路径 C OldDBClients bak 这是我的脚本 USE master GO RESTORE DATABASE D
  • 在方法/数据成员中向 WCF 添加限制

    我是 WCF 新手 我尝试对数据成员添加限制 例如在这个方法中 DataMember public string StringValue get return stringValue set stringValue value 我想设置最大
  • 使用 AT TIME ZONE 获取指定时区的当前时间

    我正在尝试使用新的在 SQL Server 2016 和 Azure SQL 中 我只是想获取伦敦的当前时间datetime 针对夏令时进行调整 运行以下所有命令时 伦敦时间为凌晨 3 27 点 第一步是获得一个datetimeoffset
  • C# 查询两个数据库的数据

    我目前有一个查询 我正在从两个不同的数据库获取数据 这些数据被附加到一个名为 accountbuys 的列表中 我的第一个表有三个数据条目 3个想要购买股票的帐户 下一张表有 17 个数据点 购买 17 只股票 I am merging t
  • com.sun.xml.ws.message.saaj.SAAJHeader 无法转换为 com.sun.xml.ws.security.opt.impl.outgoing.SecurityHeader

    我正在尝试访问第三方 Web 服务 该服务要求我创建一个传递时间信息 用户名和密码的安全标头 我在网上搜索了可行的示例 并尝试了多种方法 我正在尝试使用 Java 6 中内置的内容来做到这一点 我不确定我做错了什么 从 WSDL 生成 We

随机推荐