我的项目中有一个WCF服务。它引用了另一个带有服务契约接口的程序集。 一切顺利,直到我使用密钥签订合同参考并对合同和服务进行了更改。
重建后我开始遇到这样的异常: 程序集ZZZ中YYY类型的方法XXX没有实现。
似乎服务正在使用带有合同的旧dll,但找不到原因。当我使用反射器查看生成的dll时 - 没有旧代码 - 合同和服务的签名是相同的。 如果我从合同中删除签名 - 一切都很完美。
在测试目的中,服务在Cassini Web服务器下运行。还尝试在IIS下运行它。我以前的解决方案 - 删除ASP.NET临时文件。现在它没有帮助。
合同参考是针对sharepoint需求签署的。如果我从GAC中删除此引用,该错误也会消失。但是为什么服务项目在GAC中寻找这个dll?有解决方法吗?
感谢任何建议。
答案 0 :(得分:0)
这是CLR的特色。如果程序集强大,CLR将在GAC中搜索它。 所以在我的情况下 - 我应该在GAC中保留我的DLL的正确版本或从那里删除它。