我有一個ASP .NET Web應用程序,它具有對來自32位Crystal Reports運行時程序集的引用。 (從CRRedist2008_x86.msi安裝) 已在其上部署的服務器具有64位Crystal Reports運行時。 包含的CrystalReportViewer形式拋出以下異常:ReportDocument構造函數引發的TypeInitializerException
System.TypeInitializationException: The type initializer for 'CrystalDecisions.CrystalReports.Engine.ReportDocument' threw an exception. ---> System.UnauthorizedAccessException: Retrieving the COM class factory for component with CLSID {5FF57840-5172-4482-9CA3-541C7878AE0F} failed due to the following error: 80070005. at CrystalDecisions.CrystalReports.Engine.ReportDocument..cctor() --- End of inner exception stack trace --- at CrystalDecisions.CrystalReports.Engine.ReportDocument..ctor() at [qualifiedFormName]_Load(Object sender, EventArgs e)
雖然我意識到,使得開發環境相同的運行時環境將理想的解決方案,我希望有一些方法來解決此無需升級開發環境。
將在服務器上的web.config中更新對Crystal Reports程序集的引用嗎?
謝謝!由於我無法直接訪問服務器,因此我可能會請託管代理商的技術團隊來執行此操作。 – Gaurav
糾正我,如果我錯了,但託管機構的對象不會授予共享服務器上的所述權限? – Gaurav
您對此方法的限制性許可是正確的。對我們來說幸運的是,我們在開發者機器上遇到了這個問題,而不是在我們的服務器上。但即使它發生在服務器上,我們也能完全訪問,因爲它是內部雲。 Cloud Azure平臺提出了有關權限和高級服務器控制的類似問題。這是創建一個Azure網站(您無法控制運行該虛擬機的虛擬機)與創建安裝了IIS的Azure虛擬PC之間的主要區別。 – Believe2014