【问题标题】:How do I programatically modify the SqlCacheDependency section of web.config如何以编程方式修改 web.config 的 SqlCacheDependency 部分
【发布时间】:2014-06-25 13:58:30
【问题描述】:

我的 web.config 中有这个部分

<system.web>
    <caching>
      <sqlCacheDependency pollTime="60000" enabled="true">
        <databases>
          <add connectionStringName="CS" name="DB"/>
        </databases>
      </sqlCacheDependency>
    </caching>
</system.web>

我正在尝试使用此代码在 &lt;databases&gt; 元素中添加一个新条目

SqlCacheDependencySection section = ConfigurationManager.GetSection("system.web/caching/sqlCacheDependency") as SqlCacheDependencySection;
section.Databases.Add(new SqlCacheDependencyDatabase("DB2", "CS2", 60000)); 

但是我收到一个错误,databases 是只读的。 pollTimeenabled 属性也是如此。

到目前为止,我已经设法通过使用反射将 _bReadOnly 私有属性设置为 false 使它们可写

FieldInfo fi = typeof(ConfigurationElement).GetField("_bReadOnly", BindingFlags.Instance | BindingFlags.NonPublic);
fi.SetValue(section, false);

我不太习惯使用反射来更改密封的 .net 类中的私有属性的值。另外,我不想使用ConfigurationManager.OpenExeConfiguration 编辑 web.config 文件,因为这会重新启动工作进程。

还有其他方法可以在后面的代码中配置 SqlCacheDependency 吗?

【问题讨论】:

    标签: c# asp.net sqlcachedependency web-config


    【解决方案1】:

    不是直接的答案,但也许您的问题可以通过在部署时使用 config transformations 来解决。

    【讨论】:

      猜你喜欢
      • 2016-08-12
      • 1970-01-01
      • 1970-01-01
      • 2010-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-14
      相关资源
      最近更新 更多