【问题标题】:Taking variables out of the web.config to assign dynamically从 web.config 中取出变量以动态分配
【发布时间】:2010-11-22 12:22:29
【问题描述】:

我在我的 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 中的连接字符串。

提前致谢,

格雷格。

【问题讨论】:

    标签: c# asp.net web-config connection-string


    【解决方案1】:

    据我所知,sqlCacheDependency 的“代码背后”是直接从配置文件中获取连接字符串,所以它必须存在。

    在 web.config 中将 connectionstrings 部分留空,然后使用 this question 中的代码以编程方式添加正确的连接字符串。

    您需要将它放在任何其他代码之前调用的位置,甚至可能是 Handler 或 Module,否则 sqlCacheDependency 可能无法“捕获”正确的值。也许 global.asax 的 Application_Start 就足够了。

    【讨论】:

      【解决方案2】:

      我相信您可以使用 SqlCacheDependencyAdmin 类以编程方式设置缓存依赖项,这样您就不必依赖 SqlDependency 从 web.config 文件中读取设置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-11-08
        • 2014-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-29
        • 2011-01-11
        相关资源
        最近更新 更多