2011-10-15 21 views
1

我们已经获得了大约于2003年编写的应用程序。部分应用程序使用SQL Server Reporting Services生成报告的PDF。基本上在应用程序内用户点击一个按钮,修改参数(开始/结束日期)和报告传回(我认为)在PDF格式,以便它可以打印。大。在SQL 2005中工作正常。SSRS 2008 - reportservices.asmx与传统应用程序不兼容

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

假设有一个名为reportserver/reportexecution2005.asmx的2005兼容版本,但会生成一个令人毛骨悚然的SOAP错误。 “服务器无法处理服务器不承认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则不是这样。我还注意到,如果我浏览到reportserver/reportexecution2005.asmx,它将返回一个XML页面似乎大部分类似于在SSRS 2005中返回的内容。

所以很明显我错过了一些东西。我认为自应用程序刚刚创建以来,我应该使用SQL2000版本,它是127.0.0.1/reportserver/ reportservice.asmx。但我认为现在有一个认证定量误差。

无论如何。我无能为力。任何人有任何想法?谢谢。
我们没有源代码的应用程序,但我可以修改连接参数,就像我可以问它来查询ReportServiceXXX.asmx而不是ReportService.asmx

回答

1

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

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

相关问题