Azure缓存和实体框架反序列化问题

Ily*_*yas 5 azure azure-caching

我使用colocated缓存在azure中部署了一个Web项目.我有2个这个Web角色的实例.

我正在使用实体框架5并从数据库中获取一些实体,我使用共同缓存来缓存它们.

我的实体在类库中定义,名为Drt.BusinessLayer.Entities

但是,当我访问我的网络应用程序时,我收到错误:

反序列化器无法加载要反序列化的类型,因为在程序集'EntityFrameworkDynamicProxies-Drt.BusinessLayer.Entities,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'中找不到类型'System.Data.Entity.DynamicProxies.Country_4C17F5A60A033813EC420C752F1026C02FA5FC07D491A3190ED09E0B7509DD85' .检查被序列化的类型与要反序列化的类型具有相同的合同,并使用相同的程序集.

有时我也会得到这个:

找不到程序集'EntityFrameworkDynamicProxies-Drt.BusinessLayer.Entities,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'.

似乎将实体输出/反序列化时出错.由于它们是我的Web角色的2个实例,因此instance1可能会将一些实体对象放在缓存中,而instance2可能会将它们取出.我期待这个工作,但我不确定为什么我得到这个错误....

有人可以帮忙/建议吗?

Eug*_*hev 0

我特别不熟悉天蓝色缓存,但我猜你需要先将实体完全水化,然后再将它们传递给任何进行序列化的东西,这是分布式或进程外缓存要做的事情。

因此,当您获取实体或禁用延迟初始化时,只需对所有关系执行 .Include() 就可以了。