【问题标题】:SSRS 2008 - reportservices.asmx not compatible with legacy appSSRS 2008 - reportservices.asmx 与旧版应用程序不兼容
【发布时间】:2011-10-15 17:07:08
【问题描述】:

我们获得了一个大约在 2003 年编写的应用程序。该应用程序的一部分使用 SQL Server Reporting Services 来生成 PDF 报告。基本上在应用程序内,用户单击一个按钮,修改参数(开始/结束日期),然后以 PDF 格式传回(我认为)报告,以便可以打印。伟大的。在 SQL 2005 中运行良好。

但是,SQL 2008 完全是另一只野兽。我可以从 Web 界面 (http://127.0.0.1/reports/...) 运行相同的报告。但是网址不起作用。我四处搜寻,发现该应用程序正在向 127.0.0.1/reportserver/reportservice.asmx 发送呼叫。现在它返回一个空字符串而不是 XML 文档。

据说有一个名为 reportserver/reportexecution2005.asmx 的 2005 兼容版本,但这会产生一个奇怪的 SOAP 错误。 “System.Web.Services.Protocols.SoapException:服务器无法识别 HTTP 标头 SOAPAction 的值:http://schemas.microsoft.com/sqlserver/2003/12/reportingservices/Render。在 System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouterRequest() ....

我现在注意到,当我尝试使用 Internet Explorer 并浏览到 127.0.0.1/reportserver/reportservice.asmx 时,我得到了登录提示,而 SSRS 2005 则不是这样。我还注意到,如果我浏览到报告服务器/reportexecution2005.asmx 它返回一个 XML 页面,该页面看起来与 SSRS 2005 中返回的内容非常相似。

很明显我错过了一些东西。我认为由于该应用程序是不久前创建的,因此我应该使用 SQL2000 版本,即 127.0.0.1/reportserver/reportservice.asmx。但我认为现在存在身份验证错误。

无论如何。我一无所知。有人有什么想法吗?谢谢。
我们没有应用程序的源代码,但我可以修改连接参数,比如我可以要求它查询 ReportServiceXXX.asmx 而不是 ReportService.asmx

【问题讨论】:

    标签: sql reporting-services ssrs-2008 reportingservices-2005


    【解决方案1】:

    您非常接近看到问题所在。如果您仔细查看 ReportExecution2005.asmx 中的 XML,您会发现它位于 Soap12 中。您的错误消息显示使用方法 System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouterRequest 进行了调用,该方法正在发送 Soap11 消息。我也遇到了同样的问题,但是还没解决。

    我的两个选项是添加到 SQL 2008 报告服务的绑定以接受 Soap11,或者修改我的代码以发送 Soap12。我希望在 SQL Server 中进行简单的配置更改,但还没有找到。

    【讨论】:

      猜你喜欢
      • 2015-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多