从 Delphi XE7 使用 Microsoft Sql Server Reporting Services (SSRS) 2005 时如何解决异常错误

How to solve exception error when consuming Microsoft Sql Server Reporting Services (SSRS) 2005 from Delphi XE7

我正在尝试创建一个示例 Delphi XE7 桌面应用程序,它将连接到 SSRS 2005 网络服务,但每次我尝试调用 LoadReport 网络方法时,都会显示以下错误:

这是我到目前为止所做的:

  1. 创建桌面应用程序。
  2. 为 ReportExecution2005 和 ReportService2005 导入 WSDL。
  3. 根据显示的代码创建一个调用网络服务的按钮 here。 Web 服务位置和报告是硬编码的 简单的目的。 这是来自 link:

    的代码片段

    HTExec := tHttpRio.Create(无);

    rsExec := GetReportExecutionServiceSoap(False, ExecURL, HTExec);

    // 加载选定的报告。

    LRParams.Report := 'ReportName';

    LoadParamsResponse := rsExec.LoadReport(LRParams); //这里失败了

注意:我已经创建了一个 .NET win 表单应用程序(VS2010 和 VS2013),它可以毫无问题地使用此 Web 服务,因此我知道要呈现的 Web 服务和报告工作正常。遗憾的是,我们的要求是 Delphi 解决方案,我有根据的猜测是 WSDL 导入程序生成的代码不正确,可能有人以前遇到过这个问题并且知道如何解决它。

我快速搜索了“http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices/LoadReport” 并找到 this.

如果它也适用于您,可能是您在错误的 URL 上调用服务,请使用其中包含 ReportExecution2005.asmx 的服务,而不是 ReportService2005.asmx

(还有很多here

要找出 Delphi 版本和工作版本之间的差异,请使用 HTTP 代理 (Fiddler2) 捕获两种设置中的 SOAP HTTP 流量。

如果您无法访问工作环境,请使用 SoapUI 创建 SOAP 请求。