2009-10-15 113 views
0

我正在將現有的ASP.NET2.0應用程序升級到.NET3.5(從VS2005升級到2008--是的,我知道我遲到了!)並且遇到了Crystal Reports的問題。Crystal Reports將應用程序升級到VS2008 .NET 3.5後失敗

基本上下面這行代碼會導致Webdev.WebServer.exe關閉,應用程序崩潰(我返回到VS)。

CrystalDecisions.CrystalReports.Engine.ReportDocument rd = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); 

該行在Try/Catch中,但此時不會引發異常。

我試着創建一個新的項目,只是包含這一行,它也崩潰 - 所以它不是應用程序本身。
然後我嘗試使用舊版本的dll(10.5.3700.0而不是11.5.3700.0),它在虛擬應用程序中正常工作。顯然,我寧願不降級真實應用程序,但這樣做的確解決了問題(我還需要降級其他CR dll,以便它可能會在應用程序中產生影響)。

我找不到對DLL的更高版本的任何引用,並已從Crystal Reports中下載VS2008的最新運行時包,但這沒有什麼區別 - 雖然安裝程序似乎什麼也不做,事件查看器確認安裝成功。

有沒有其他人經歷過這個或知道它的方式 - 除了降級DLL?

[編輯]我已經能夠通過關閉數據執行保護來解決問題,但這不是一個可行的解決方案 - 我幾乎沒有告訴客戶這麼做!另外,在VS2005/.NET2.0中一切都運行良好!

回答

0

那麼我可能在這裏找到了答案 - 它看起來像Crystal Reports XI R2(DLL版本11.5.3700.0)與VS2008不兼容。

This Business Objects document或多或少地證實了這一點,雖然v10.5和2008(XI Release 2任意一方的版本)是兼容的,這很奇怪。該文件還說,數據執行保護可能需要關閉,但這(在我看來)是不可行的。

我將刪除XI R2並安裝2008,看看我該怎麼做 - 一旦完成後我會回覆。

[編輯]做到了!奇怪的是,v10和v12被支持,但v11不支持。可能我很快就開始對自己感到滿意 - 雖然它現在可以在我的本地開發PC上工作,但部署到服務器並不那麼簡單。我嘗試安裝正確的運行時,但是當報告查看器打開時,我只是在瀏覽器中找不到「C:\ Windows \ Temp \ 9as00af.dll」的錯誤消息。

[最終編輯]看起來我不得不恢復到10.5.3700.0--即VS2008附帶的Crystal Reports版本。在服務器上安裝運行系統然後對問題進行排序

相關問題