2011-10-15 54 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中進行簡單的配置更改,但還沒有找到它。

相關問題