2013-03-01 118 views
1

我已經搜索了每個地方(我認爲),但我一直無法找到答案,也許是因爲它非常基本,但在這裏。我最近部署了一個Silverlight業務應用程序到Windows Azure平臺。我正在使用Crystal Reports進行報告,並且一切正常。我需要在SSL中運行應用程序,因此我購買了證書並按照說明啓動應用程序並再次運行,除了報告之外,一切都很好。當我通過http訪問網站時,我無法打印報告。但通過https我得到如下當我嘗試打印報告:Crystal Reports通過HTTP工作,但不通過HTTPS

Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack.

說明:

An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

異常詳細信息:

System.Runtime.InteropServices.COMException: Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack.

源錯誤:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

堆棧跟蹤:

[COMException (0x80041811): Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack.] 
    CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options) +0 
    CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options) +147 
    CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +422 
[CrystalReportsException: Load report failed.] 
    CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +549 
    CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob) +1613 
    CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename) +189 
    COCOBOLO.Web.Files.ReportHandler1.MeetingMinutes() +247 
    COCOBOLO.Web.Files.ReportHandler1.Page_Load(Object sender, EventArgs e) +2392 
    System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25 
    System.Web.UI.Control.LoadRecursive() +71 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3064 

我幾乎可以肯定,有一個使用SSL的Crystal Reports的權限問題,但我不知道該怎麼做。有沒有人有這個問題?請幫助!

+0

端口443是否打開? – craig 2013-03-01 16:15:27

+0

我不知道我明白。我已將Silverlight應用程序部署到Windows Azure,並且我已將其中一個端點分配到端口443.是否有辦法在Azure平臺上打開/關閉端口?原諒我的無知,這對我來說都是新的。回顧一下,除了Crystal Reports和SSL以外,一切都可以使用。 – 2013-03-01 18:13:45

回答

0

由於您的堆棧跟蹤顯示加載報告失敗,我要做的第一件事是檢查您的項目中是否有報告,並且您的代碼能夠訪問報告。 我知道一切工作正常使用HTTP。另外,請確保您已經在存儲報告的文件夾上讀取了寫入權限。

+0

謝謝你的迴應。我確實檢查了報告在項目中,並且代碼能夠訪問報告。我不確定如何爲部署到Azure的項目設置文件夾的權限,但如果項目無法訪問,是否在兩種情況下都不會出現錯誤?但是,調試時唯一改變的是Azure WebRole屬性中的啓動操作。當我選擇HTTP端點時,我可以打印沒有問題。當我選擇HTTPS端點時,出現錯誤。這是我改變的唯一的事情。有什麼建議麼? – 2013-03-03 04:56:27

+0

只是爲了測試加載失敗是由於無法訪問報告的理論,我故意將報告更改爲KNOW不存在的名稱,並且正如預期的那樣,代碼在嘗試加載報告:OrderReport = new ReportDocument(); string reportPath = Server.MapPath(「〜/ Reports/ProjectMeeeetingMinutes.rpt」); OrderReport.Load(reportPath); – 2013-03-03 05:08:06

+0

當我將報告名稱更改爲現有報告時,報告成功加載並且已驗證所有連接字符串變量和報告參數後失敗:OrderReport。ExportToHttpResponse(exportType,Response,true,「Meeeting Minutes」);因此,似乎將報告導出到緩衝區,以便用戶可以查看報告導致錯誤。但我不知道如何解決這個錯誤。 – 2013-03-03 05:16:40

0

問題不在你的水晶報告中。這個問題是因爲s​​sl不想加載pdf文件。

Display pdf in iframe using ssl/https based

你可以嘗試下載PDF瀏覽器在Chrome網上應用店是在SSL和對我的工作。

最好的方面。