流暢で syscache2 を使用する WCF サービスに取り組んできました。私は、現在のジレンマに関する SO に関するすべての記事をほとんど読みました。運がなかった。
二次キャッシュの有効期限を設定しようとしています。設定した値は無視されるようで、デフォルト値の 5 分がキャッシュの期限切れに使用されます。
流暢な構成:
注: contextClass は、構成に渡される値を保持する単なる記述子クラスです。
var cfg = Fluently.Configure()
.Database(
MsSqlConfiguration.MsSql2008
.ConnectionString(c => c.Is(connectionString))
.ShowSql()
)
.Diagnostics(d => d.Enable())
.Cache(c => c
.UseQueryCache()
.ProviderClass(typeof(NHibernate.Caches.SysCache2.SysCacheProvider).AssemblyQualifiedName))
.Mappings(m => m
.FluentMappings
.AddFromAssembly(assembly))
.ExposeConfiguration(x =>
{
x.SetProperty(NHibernate.Cfg.Environment.CurrentSessionContextClass, contextClass.Id);
x.SetProperty(NHibernate.Cfg.Environment.PrepareSql, contextClass.PrepareSql); //set prepare_sql true/false
x.SetProperty(NHibernate.Cfg.Environment.CacheDefaultExpiration, contextClass.ExpireL2Cache); //set default expiration in seconds
});
app.config ファイルも次のように設定しています。
<configSections>
<section name="syscache" type="NHibernate.Caches.SysCache2.SysCacheSection, NHibernate.Caches.SysCache2"/>
</configSections>
<syscache>
<cache expiration="600" priority="5" />
</syscache>
リージョンを使用する syscache セクションを持つ app.config のバリアントがありましたが、それも機能しませんでした。
アイデアに関する提案はありますか?
ありがとう