2014-06-20 61 views
0

我有一個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程序集的引用嗎?

回答

0
  • 打開Windows註冊表器(Regedit.exe)
  • 搜索5FF57840-5172-4482-9CA3-541C7878AE0F
  • 你應該找到一把鑰匙,展開它,去到每個子節點,直到您找到安裝路徑。
  • 轉到該路徑(通常是C:\程序\ Business Objects公司... \ bin中...)
  • 格蘭特爲ASP .NET,IIS工作進程完全權限,匿名Web用戶進程帳戶

    你應該很好走。

+0

謝謝!由於我無法直接訪問服務器,因此我可能會請託管代理商的技術團隊來執行此操作。 – Gaurav

+1

糾正我,如果我錯了,但託管機構的對象不會授予共享服務器上的所述權限? – Gaurav

+0

您對此方法的限制性許可是正確的。對我們來說幸運的是,我們在開發者機器上遇到了這個問題,而不是在我們的服務器上。但即使它發生在服務器上,我們也能完全訪問,因爲它是內部雲。 Cloud Azure平臺提出了有關權限和高級服務器控制的類似問題。這是創建一個Azure網站(您無法控制運行該虛擬機的虛擬機)與創建安裝了IIS的Azure虛擬PC之間的主要區別。 – Believe2014

相關問題