无法加载文件或程序集CrystalDecisions.ReportAppServer.ClientDoc

时间:2012-04-03 21:00:20

标签: c# asp.net-mvc crystal-reports

我在SO上看过类似的问题,但据我所知,没有什么能与我的问题相提并论。

异常消息:

  

无法加载文件或程序集“CrystalDecisions.ReportAppServer.ClientDoc,Version = 13.0.2000.0,Culture = neutral,PublicKeyToken = 692fbea5521e1304”或其中一个依赖项。系统找不到指定的文件。

该文件在我的GAC中。我正在使用运行VS2010的32位机器(Windows 7)进行开发,一切都是.NET4。目标托管机器是64位Win 2008 R2。我的本地机器有VS2010的CR安装;托管机器具有VS2010的64位运行时。我正在为此Web应用程序的“任何CPU”模式编译我的所有代码。

我在想它无法在GAC中找到该文件。这是一个IIS应用程序;是否存在某种权限问题?我认为IIS可以访问GAC。

对于该怎么做的一些建议将不胜感激。

4 个答案:

答案 0 :(得分:14)

事实证明,答案非常简单,但却为何其必要而神秘化。

在服务器上的IIS管理器中,我将Web应用程序的应用程序池设置为不允许32位程序集。

在64位系统上,似乎假设您必须要32位汇编。奇异。

答案 1 :(得分:3)

答案 2 :(得分:2)

关于需要32位支持的64位系统。我发现它并不那么奇怪:

虽然部署到64位系统,但这并不意味着所有引用的程序集都必须是64位Crystal Reports程序集。除此之外,Crystal Reports程序集主要只是它们所基于的旧DLL集合的包装器。主要引用的程序集需要许多32位DLL。错误消息“无法加载程序集”也涉及这些DLL。要直观地了解它们是什么,请访问www.dependencywalker.com并直接在该IIS服务器上运行相关程序集中的“Depends”。

答案 3 :(得分:2)

您只需在Deployment Server上安装Crystal Report Report Run Time次下载。如果仍然出现问题,请将检查asp_client文件夹放在项目主文件夹中。