从AppFabric缓存检索时加载程序集时出错

本文关键字:加载 出错 程序集 检索 AppFabric 缓存 | 更新日期: 2023-09-27 18:24:07

我今天在调试我的一个项目时遇到了一个奇怪的问题。我使用VS2010/windows 7家庭高级版。

我有一个使用Windows Server AppFabric缓存的项目。我已经配置了所有内容,并创建了两个不同的C#项目(2个解决方案)来测试AppFabric配置。项目名称为"AppFabricServer"answers"AppFabricClient"。这只是为了测试,命名约定没有任何特定的含义。我使用"AppFabricServer"将对象添加到AppFabric缓存和"AppFabricClient"项目来检索。

现在,问题是在运行"AppFabricServer",然后我在关闭"AppFabric服务器"后尝试运行"AppFabClient",我得到一个错误"System.IO.FileNotFoundException:无法加载文件或程序集"AppFabricServer"。我不明白"AppFabricServer"项目和"AppFabricClient"项目的关系。

反之亦然——这意味着,在重新启动计算机后,如果我先运行"AppFabricClient"项目(它也有一个缓存写入模块),我将无法运行"App法布里斯erver"项目(也有一个子缓存读取模块)。我得到了相同的错误-"System.IO.FileNotFoundException:无法加载文件或程序集"AppFabricClient"。

当我调用DataCache的Get方法时,在我尝试从Cache检索数据的那一行会抛出异常。

有人能帮忙吗?

从AppFabric缓存检索时加载程序集时出错

AppFabric利用NetDataContractSerializer来序列化对象。此序列化程序对CLR类型信息进行编码。因此,即使对象的形状相同,实际上也需要它们在同一部件中是相同的类型。

因此,将要序列化的对象从AppFabricServer程序集中取出,并将其放入从AppFabric服务器和AppFabricClient程序中引用的第三个程序集中。这样,CLR类型信息在两者中都是相同的。