【发布时间】: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