Как решить «Эта операция не поддерживается кешем». для NHibernate кеша в Azure? - PullRequest
1 голос
/ 23 марта 2012

Я пытаюсь реализовать кэш 2-го уровня Nhibernate, используя NHibernate.Caches.Velocity, и обсудил здесь о переполнении стека , используя это сообщение в блоге .

Приложение - Azure WebRole, использующее Nhibernate 3.2.

Кажется, все правильно, за исключением исключения, которое выдается при инициализации фабрики сеансов:

"This operation is not supported by the cache."

Трассировка стека:

at Microsoft.ApplicationServer.Caching.DataCacheFactory.ThrowNotSupportedException()
   at Microsoft.ApplicationServer.Caching.DataCacheFactory.CreateHybridClient(String cacheName, NamedCacheConfiguration config, SimpleSendReceiveModule sendRcvModule)
   at Microsoft.ApplicationServer.Caching.DataCacheFactory.CreateNewCacheClient(DataCacheDeploymentMode mode, String cacheName, NamedCacheConfiguration config, SimpleSendReceiveModule sendRcvModule)
   at Microsoft.ApplicationServer.Caching.DataCacheFactory.GetCache(String cacheName)
   at NHibernate.Caches.AppFabric.AppFabricCacheFactory.GetCache(String cacheName, Boolean useDefault)
   at NHibernate.Caches.AppFabric.AppFabricCacheAdapter..ctor(String regionName)
   at NHibernate.Caches.AppFabric.Adapters.AppFabricCacheNamedAdapter..ctor(String regionName)
   at NHibernate.Caches.AppFabric.AppFabricCacheAdapterFactory.Create(String regionName)
   at NHibernate.Caches.AppFabric.AppFabricProvider.BuildCache(String regionName, IDictionary`2 properties)
   at NHibernate.Cache.UpdateTimestampsCache..ctor(Settings settings, IDictionary`2 props)
   at NHibernate.Impl.SessionFactoryImpl..ctor(Configuration cfg, IMapping mapping, Settings settings, EventListeners listeners)
   at NHibernate.Cfg.Configuration.BuildSessionFactory()
   at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory() in d:\Builds\FluentNH\src\FluentNHibernate\Cfg\FluentConfiguration.cs:line 230

Web.Config:

  <dataCacheClients>
    <dataCacheClient name="default">
      <hosts>
        <host name="xxx.cache.windows.net" cachePort="22233" />
      </hosts>
      <securityProperties mode="Message">
        <messageSecurity
          authorizationInfo="xxx">
        </messageSecurity>
      </securityProperties>
    </dataCacheClient>
  </dataCacheClients>

Кто-нибудь знает, что вызывает это? Я получаю ноль релевантных результатов, если я в Google.

1 Ответ

0 голосов
/ 23 марта 2012

Не могу сказать наверняка, так как я не знаком с тем, как NHibernate пытается использовать кеш, но кеширование Azure не поддерживает все функциональные возможности локального кеша. Я предполагаю, что он пытается использовать неподдерживаемые функции. У MS есть список различий между двумя

...