[英]Alternative to appsettings in web.config (persistance needed)
我目前在我的Web.config中有一些配置變量,例如:
<appSettings>
<add key="RecipientEmailForNotifications" value="asdf@sdf.com" />
<add key="NotifyNewEntries" value="true" />
<!-- etc... -->
</appSettings>
我有一個視圖,管理員用戶可以在線更改此值,例如。
/管理/配置/
通知的收件人電子郵件:[ _ __ _ __ _ __ _ _ ]
通知新條目:[x]是
[保存]
但這種方法存在兩個問題:
所以問題是: 實現這個必須保持配置變量的目標的最佳方法是什么?
我認為使用表格不是很自然,但我可能錯了(請解釋原因)。
此外,在閱讀值時使用應用程序設置非常方便:
ConfigurationManager.AppSettings["RecipientEmailForNotifications"]
與使用數據庫相反,
db.SomeConfigurationTable.SingleOrDefault(.....)
我將使用數據庫存儲和緩存的組合。
如果您在單個Web服務器上,則可以將設置存儲在proc緩存中。 如果您在Web場中,可以查看類似couchbase(免費memcached)或azure的內容 。
在應用程序啟動時加熱緩存可能是有意義的。 這是從數據庫中讀取設置並填充緩存。
另一種流行的方法是進行Get調用,首先檢查緩存,如果緩存是空的,則填充緩存,例如
public string Get(string key, Func<string> getItemCallback)
{
var item = Cache.Get(key) as string;
if (item == null)
{
item = db.SomeConfigurationTable.SingleOrDefault(key);
Cache.Store(key, item);
}
return item;
}
不要忘記更新設置時需要突發緩存。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.