ASP.NET 2.0 內建 SqlCacheDependency 徹底解決快取與資料庫同步問題,取代觸發器+檔案 I/O 的笨重方案。本文完整記錄設定與啟用流程。
<system.web>
<caching>
<sqlCacheDependency enabled="true">
<databases>
<add name="AtlasDemoDb"
connectionStringName="AtlasDemoDbConnectionString"
pollTime="12000" />
</databases>
</sqlCacheDependency>
</caching>
</system.web>
EnableCaching="true"SqlCacheDependency="AtlasDemoDb:SimpleDemo1"(格式:資料庫名稱:資料表名稱)aspnet_regsql.exe -S 伺服器 -E -d 資料庫名 -ed
aspnet_regsql.exe -S 伺服器 -E -d 資料庫名 -et -t 資料表名
System.Web.Caching.SqlCacheDependencyAdmin.EnableNotifications(
ConfigurationManager.ConnectionStrings["AtlasDemoDbConnectionString"].ConnectionString);
System.Web.Caching.SqlCacheDependencyAdmin.EnableTableForNotifications(
ConfigurationManager.ConnectionStrings["AtlasDemoDbConnectionString"].ConnectionString,
"SimpleDemo1");
「沒有為 SQL 快取通知啟用資料庫」→ 忘記執行步驟 3。務必先啟用資料庫層級通知,再啟用資料表層級。
設定完成後,資料表異動即自動使快取失效,零程式碼維護快取一致性。