Caching Azure共享缓存和同一项目中的同处缓存

Caching Azure共享缓存和同一项目中的同处缓存,caching,azure,azure-caching,Caching,Azure,Azure Caching,因此,我想知道是否可以同时使用Azure共享缓存和新的位于同一位置的缓存作为web角色?我想将会话状态存储在旧的Azure共享缓存中,以在使用VIP交换的应用程序部署之间保留会话状态。我想使用新的同位缓存来缓存内存中的值,这些值经常被访问,但在数据库中不经常更改,因此非常适合使用新的同位缓存和通知进行缓存。应该可以正常工作-只是在配置部分为缓存使用了不同的名称: <dataCacheClients> <dataCacheClient name="colocated"&g

因此,我想知道是否可以同时使用Azure共享缓存和新的位于同一位置的缓存作为web角色?我想将会话状态存储在旧的Azure共享缓存中,以在使用VIP交换的应用程序部署之间保留会话状态。我想使用新的同位缓存来缓存内存中的值,这些值经常被访问,但在数据库中不经常更改,因此非常适合使用新的同位缓存和通知进行缓存。

应该可以正常工作-只是在配置部分为缓存使用了不同的名称:

<dataCacheClients>
    <dataCacheClient name="colocated">
       <autoDiscover isEnabled="true" identifier="[cache cluster role name]" />
    </dataCacheClient>
    <dataCacheClient name="shared">
       <hosts>
           <host name="yourcachename.cache.windows.net" cachePort="22233" />
       </hosts>
    </dataCacheClient>
</dataCacheClients>
在会话配置中:

<!-- Windows Azure Caching session state provider -->
<sessionState mode="Custom" customProvider="AFCacheSessionStateProvider">
  <providers>
    <add name="AFCacheSessionStateProvider" 
      type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
      cacheName="shared" 
      dataCacheClientName="shared" 
      applicationName="AFCacheSessionState"/>
  </providers>
</sessionState>

我认为这两种方法都不可能奏效。似乎一个版本的缓存需要101.0.0.0版本的Microsoft.ApplicationServer.caching和Microsoft.Web.DistributedCache,而另一个版本需要1.0.0.0版本。这可以通过为Azure缓存和Azure共享缓存安装不同的nuget包来验证。如果有人知道如何让两者都运行,请在这里发布解决方案


我已使用Microsoft ASP.NET Universal Providers将会话数据迁移到Azure SQL,并将分布式缓存添加到项目中,而不是同时使用这两种缓存方法。

执行此操作时,我似乎遇到了一些dll不匹配问题。我正在调查我是否能找到正确的组合。共享缓存可能也会消失-谣言工厂!不要使用共享缓存,它是,呃。。。不太好。如果需要在两次部署之间保持,请将缓存放入blob(或其他内容)并reload@SimonMunro理论上听起来不错,但是有什么简单的方法可以在部署之间将缓存持久化到blob存储吗?您可以列出缓存()中的所有对象,将它们写入blob,并在实例启动时加载它们。不过,会话状态可能很复杂-可能编写一个会话状态提供程序,可以使用blob和缓存作为存储(如果它在缓存中找不到从blob加载的对象),这是一个不错的主意,就好像缓存得到了完整的数据一样
<!-- Windows Azure Caching session state provider -->
<sessionState mode="Custom" customProvider="AFCacheSessionStateProvider">
  <providers>
    <add name="AFCacheSessionStateProvider" 
      type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
      cacheName="shared" 
      dataCacheClientName="shared" 
      applicationName="AFCacheSessionState"/>
  </providers>
</sessionState>