【发布时间】:2012-07-10 03:44:08
【问题描述】:
我很困惑!
我有一个解决方案,在发布和部署时会出现以下错误:
Exception information:
Exception type: HttpException
Exception message: Method 'GetDemosSubsidiaryById' in type 'DG.Crm.DataAccess.Crm2011WS.Repositories.ReferenceEntitiesRepository' from assembly 'DG.Crm.DataAccess.Crm2011WS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
<stack trace>
显然它构建得很好,并且该方法已实现并且肯定存在于库中。我使用反射器检查已部署的 DLL,我也看不到任何异常之处——类存在,类型存在,方法已实现。它所抱怨的特定方法也没有被调用。
我已删除所有引用并在解决方案中重新添加它们。
我使用 Visual Studio 中的“实现接口”快捷方式重新创建了 DG.Crm.DataAccess.Crm2011WS.Repositories.ReferenceEntitiesRepository。
解决方案在 Visual Studio 中加载并正常工作。
我在这里遗漏了什么或者我在哪里可以找到更多信息?
编辑以添加解决方案结构:
2011WS 库实现了存在于Common 库中的接口。然后两者都被 WebApps MVC Web 应用程序引用。
【问题讨论】:
-
那是您的程序集 DG.Crm.DataAccess.Crm2011WS 吗?您是否检查了给定的方法是否已实现?您的程序集是否来自 GAC?
-
愚蠢的问题,但您是否确认 IIS 中指定的 .NET 版本与您项目中使用的版本匹配?
-
这是我的程序集,是的,方法已实现(否则我会看到编译时错误,告诉我接口尚未实现)。据我所知,GAC 中没有库。
-
IIS 配置是为解决方案的目标框架 .Net 4 设置的
-
啊哈,不,我认为@nunespascal 是对的——有人在我不知道的情况下在 GAC 中安装了一个库。谜团解开了!
标签: .net asp.net-mvc-3 typeloadexception