【问题标题】:Automatically inserting new fields in a web.config file在 web.config 文件中自动插入新字段
【发布时间】:2010-04-15 13:13:57
【问题描述】:

我有一个 ASP.NET 项目,它的 web.config 文件中已经有一些自定义字段。我在其中添加了另外三个字段并在我的更改中使用它们,效果很好。

但是需要用到的地方,web.config中没有这三个字段(这是意料之中的,我只是为了测试和开发手动添加的)。

如何检查 web.config 中的字段是否存在,如果找不到,如何将其永久添加到 web.config 中?

谢谢

【问题讨论】:

  • 不确定您的意思,您是在尝试以编程方式添加字段还是什么? :-)

标签: c# .net asp.net visual-studio web-config


【解决方案1】:

您可以执行以下操作来查看配置中是否存在密钥:

bool KeyExists(string key)
{
    return (!(ConfigurationManager.AppSettings[key] == null));
}

对于您问题的另一部分,您可能可以通过 WebConfigurationManager 类添加内容。

编辑: 如果存在动态添加内容的潜力,我通常将内容保存在数据库而不是配置文件中,但这只是我。

【讨论】:

  • 我确实也这样做。虽然在这种特殊情况下我必须使用 web.config。谢谢!
  • 您如何发布您的网站?我认为将这些密钥放在您的开发 web.config 中会将它们推送到您的站点,以便它们在网站的第一次运行时可用。
【解决方案2】:

小心!我不完全确定 ASP.NET 进程是否有权更改其 web.config 文件,但如果有,请记住,进行此更改实际上会重新启动并删除该站点上的所有现有会话。

您究竟为什么要以编程方式执行此操作?当您部署使用这些字段的新代码时,为什么不将现有的 web.config 文件替换为包含新字段的文件?

【讨论】:

  • 因为web.config文件是自动生成的吧?据我所知,通过删除并重新安装网站,web.config 文件将在没有这三个字段的情况下被打包。不得不替换 web.config 文件并不是很理想。最终的问题是:为什么 web.config 中当前使用的自定义字段会出现在网站的第一次运行中?这就是我想要的。
猜你喜欢
  • 2020-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-09
相关资源
最近更新 更多