我在我的ASP.NET应用程序中使用sql依赖缓存,为了实现这一点,我在web.config中有以下条目:
<connectionStrings>
<add name="DatabaseName" connectionString="Data Source=.\Dev;Initial Catalog=DatabaseName;Integrated Security=True" />
</connectionStrings>
<system.web>
<caching>
<sqlCacheDependency enabled="true">
<databases>
<add name="DatabaseName" connectionStringName="DatabaseName"/>
</databases>
</sqlCacheDependency>
</caching>
</system.web>
在应用程序中,使用web.config中指定的数据库名称创建SqlCacheDependency,如下所示:
var tableDependency = new SqlCacheDependency("DatabaseName", "TableName");
我想要实现的是在web.config中不再需要连接字符串,因为当放置到不同的服务器上时,此应用程序的连接字符串可能会发生变化。
应用程序中已经有一个连接字符串类,它返回当前所在服务器的正确字符串,所以不使用它,我将不得不手动更改每个服务器上web.config中的连接字符串。 / p>
提前致谢,
格雷格。
答案 0 :(得分:1)
据我所知,sqlCacheDependency的“代码隐藏”是直接从配置文件中获取连接字符串,因此必须在那里。
在web.config中将connectionstrings部分留空,然后使用this question中的代码以编程方式添加正确的连接字符串。
你需要将它放在任何其他代码之前调用的地方,甚至可能是Handler或Module,否则sqlCacheDependency可能不会“捕获”正确的值。也许global.asax的Application_Start就足够了。
答案 1 :(得分:0)
我相信您可以使用SqlCacheDependencyAdmin
类以编程方式设置缓存依赖项,这样您就不必依赖SqlDependency
来读取web.config文件中的设置。