代码之家  ›  专栏  ›  技术社区  ›  Alan Clark

奇怪的GAC错误ASP.Net应用

  •  0
  • Alan Clark  · 技术社区  · 15 年前

    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配置问题,但我不知道如何解决它。我已经安装了.NET3.5SP1和IIS7.0,在Vista HomePremium 64位上运行。这个网站是用DelphiPrism创建的,它运行在2008年的VisualStudioShell中。我搜了又搜又搜,但什么也没有。非常感谢任何帮助!

    3 回复  |  直到 11 年前
        1
  •  1
  •   Brij    15 年前

    添加System.EnterpriseServices公司(C:\WINDOWS\微软.NET\Framework\v2.0.50727\CONFIG)将解决您的问题。

    或者

    从中删除引用web.config文件如果你不使用这个。

        2
  •  0
  •   Sebastian P.R. Gingter    15 年前

        3
  •  0
  •   Phil Gilmore    15 年前

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

    不管是什么原因,如果您发现仍然需要该程序集,那么您只需在正确的位置获取正确的程序集,以便IIS可以加载它。

    尝试在Windows资源管理器中打开GAC。我不是在运行Vista,所以如果你的步骤和我的不同,请跟我一起去。平滑启动,然后键入c:\windows\assembly。显然,您需要权限来查看/管理此文件夹。找到相关程序集,并查看可用的版本。看起来.NET子系统正在尝试将应用程序jit为64位,并且需要64位版本的程序集。

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