0

我的项目中有一个 WCF 服务。它引用了另一个带有服务合同接口的程序集。在我使用密钥与合同签署参考并对合同和服务进行更改之前,一切都运行良好。

重建后,我开始遇到这样的异常:来自程序集 ZZZ 的 YYY 类型的方法 XXX 没有实现。

似乎该服务正在使用带有合同的旧 dll,但找不到原因。当我使用反射器查看生成的 dll 时 - 没有旧代码 - 合同和服务的签名是相同的。如果我从合同中删除签名 - 一切都很完美。

出于测试目的,服务在 Cassini Web 服务器下运行。还尝试在 IIS 下运行它。我以前的解决方案是删除 ASP.NET 临时文件。现在它没有帮助。

合同的参考是为共享点的需要而签署的。如果我从 GAC 中删除此引用,该错误也会消失。但是为什么服务项目要在 GAC 中寻找这个 dll 呢?有解决方法吗?

将不胜感激任何建议。

4

1 回答 1

0

这就是 CLR 的特点。如果程序集是强命名的 - CLR 将在 GAC 中搜索它。所以在我的情况下 - 我应该在 GAC 中保留我的 DLL 的正确版本或从那里删除它。

于 2012-08-31T22:32:07.937 回答