Caching 角色缓存中的Azure和同一解决方案中的Windows Server AppFabric缓存

Caching 角色缓存中的Azure和同一解决方案中的Windows Server AppFabric缓存,caching,azure,windows-server,appfabric-cache,azure-in-role-cache,Caching,Azure,Windows Server,Appfabric Cache,Azure In Role Cache,我们正在将Azure应用程序迁移到本地数据中心。在将Azure包部署到云服务时,我们需要在角色缓存中使用Azure。在部署到Windows Server内部部署时,我们需要使用Windows Server AppFabric缓存如何使其在一个解决方案中工作? 详细说明 我们使用Azure SDK v 2.2客户端程序集在角色缓存中连接到Azure Microsoft.ApplicationServer.Caching.Client.dll, assembly version 1.0.0.0, f

我们正在将Azure应用程序迁移到本地数据中心。在将Azure包部署到云服务时,我们需要在角色缓存中使用Azure。在部署到Windows Server内部部署时,我们需要使用Windows Server AppFabric缓存如何使其在一个解决方案中工作?

详细说明

我们使用Azure SDK v 2.2客户端程序集在角色缓存中连接到Azure

Microsoft.ApplicationServer.Caching.Client.dll, assembly version 1.0.0.0, file version 1.0.5137.0
Microsoft.ApplicationServer.Caching.Core, assembly version 1.0.0.0, file version 1.0.5137.0
我们使用安装附带的客户端程序集连接到Windows Server AppFabric Cache v 1.1

Microsoft.ApplicationServer.Caching.Client.dll, assembly version 1.0.0.0, file version 1.0.4632.0
Microsoft.ApplicationServer.Caching.Core, assembly version 1.0.0.0, file version 1.0.4632.0
程序集可视化问题在线程中解决


问题是,我们的主web项目最终引用了所有提到的具有重复名称和版本的程序集。我们不想一路闯过去。从最坏到不太坏的选项是创建自定义程序集加载或修改生成过程。你喜欢哪种方式?我们是否已经偏离了正轨

不能在同一项目中同时使用azure SDK库和内部部署库进行缓存。对于内部部署,您需要使用安装文件夹中的客户端库,对于角色中的客户端库,需要使用azure SDK中的客户端库

如果您迁移的原因是服务器和客户端绑定到同一个项目,我建议使用托管缓存,这是一种新的GA解决方案,您可以在角色中使用相同的客户端,只需进行最小的配置级别更改即可使其正常工作。这里的服务器正常运行时间SLA等由服务团队自己管理,因此您不必为这些问题操心


如果您想完全转移到内部部署,那么是的,Appfabric for windows server是最好的解决方案。但一般来说,我看到的网站都有来自世界各地的流量,从他们的azure缓存解决方案中受益。但是你会更了解你的场景:)

你可以在同一个项目中同时使用azure SDK库和本地库进行缓存,但这是一种黑客行为。也就是说,这不是个好主意。尝试改用Redis

我会继续提出不好的建议

需要存在两种构建配置。一个用于Azure,另一个用于on-prem。on-prem构建过程需要调整。例如,添加一些msbuild xml或运行一些生成后脚本,这些脚本将用on-prem DLL替换默认部署的Azure DLL。 在prem上发布也需要调整。检查此指针:
.

您可以修改生成过程,根据生成配置将Azure SDK库或Windows Server AppFabric缓存库输出到目标bin文件夹。未获取上下文。但我认为这并不能解决这个问题。