ASP.Net 应用程序中奇怪的 GAC 错误

Posted

技术标签:

【中文标题】ASP.Net 应用程序中奇怪的 GAC 错误【英文标题】:Strange GAC error in ASP.Net application 【发布时间】:2009-11-18 23:23:51 【问题描述】:

尝试在 IIS 下查看我的网站时遇到了奇怪的故障。如果我创建一个新的 ASP.Net 网站应用程序,根本不要修改它并运行它(F5)网页显示错误:

Compilation Error
Description: An error occurred during the compilation of a resource required to
service this request. Please review the following specific error details and modify
your source code appropriately.

Compiler Error Message: CE29: (CE29) Unable to load assembly C:\Windows\assembly\GAC_64
\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll Not
a valid .NET executable (Offset and length were out of bounds for the array or count
is greater than the number of elements from index to the end of the source collection.)

它看起来像一个 .Net 配置问题,但我不知道如何解决它。我已经安装了 .Net 3.5 SP1 和 IIS 7.0,在 Vista Home Premium 64 位上运行。该网站是使用在 2008 Visual Studio Shell 中运行的 Delphi Prism 创建的。我用谷歌搜索和谷歌搜索,但什么也没有。非常感谢任何帮助!

【问题讨论】:

【参考方案1】:

将 System.EnterpriseServices(C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG) 添加到您的参考中将解决您的问题。

从 web.config 中删除引用如果你不使用它。

【讨论】:

感谢您的回复。它在项目中被引用,所以我删除了它,仍然是同样的错误。然后我在 machine.config 中添加了以下行,也没有帮助: 至少它适用于卡西尼开发服务器。【参考方案2】:

请检查您项目的参考资料。你引用 System.EnterpriseServices 吗? 如果没有,请查看 machine.config 文件。也许那里引用了程序集?

【讨论】:

【参考方案3】:

您可以尝试删除对该 DLL 的引用,但 Prism 将其放在那里可能是有原因的。有很多可能的原因。也许您已经指定了页面级事务支持,或者您正在使用 COM 互操作。您可以通过暂时删除引用并进行完全重建以查看编译器抱怨的内容来确定原因。

无论出于何种原因,如果您发现仍然需要该程序集,您只需在正确的位置找到正确的程序集,以便 IIS 可以加载它。

尝试在 Windows 资源管理器中打开 GAC。我没有运行 Vista,如果您的步骤与我的不同,请多多包涵。滑动开始,然后键入 c:\windows\assembly。您显然需要查看/管理此文件夹的权限。找到有问题的程序集并查看可用的版本。看起来 .NET 子系统正在尝试将您的应用程序 jit 为 64 位,并且需要此程序集的 64 位版本。

如果您在 GAC 中没有看到适当的程序集(您可能会看到其他版本),那么这可能解释了它。

我不确定解决方案,但我可能会尝试两件事,即确保您的系统上某处有 64 位版本的 DLL,并尝试使用 GACUtil /i 将其安装到 GAC 中。您也可以尝试使用 aspnet_regiis.exe -i 为 IIS 重新配置 ASP.Net。

【讨论】:

以上是关于ASP.Net 应用程序中奇怪的 GAC 错误的主要内容,如果未能解决你的问题,请参考以下文章

Android应用程序中奇怪的图形伪影

iPhone 应用程序中奇怪的 OpenGL ES 行为

Chrome/Chromium 中奇怪的对角线(错误?)

Chrome 中奇怪的 CSS 边框问题

如何在 iOS 4 中摆脱 UIPopoverController 中奇怪的黑色导航栏

iOS6 中奇怪的 SplitView/NavigationController 行为