如何在运行时修改web.config appSettings?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (43)

我很困惑如何在运行时修改web.config appSettings的值。例如,我有这个appSettings部分:

<appSettings>
  <add key="productspagedesc" value="TODO: Edit this default message" />
  <add key="servicespagedesc" value="TODO: Edit this default message" />
  <add key="contactspagedesc" value="TODO: Edit this default message" />
  <add key="aboutpagedesc" value="TODO: Edit this default message" />
  <add key="homepagedesc" value="TODO: Edit this default message" />
 </appSettings>

比方说,我想在运行时修改“homepagedesc”键。我尝试了ConfigurationManager和WebConfigurationManager静态类,但是这些设置是“只读”的。如何在运行时修改appSettings的值?

提问于
用户回答回答于

需要使用WebConfigurationManager.OpenWebConfiguration():例如:

Dim myConfiguration As Configuration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~")
myConfiguration.ConnectionStrings.ConnectionStrings("myDatabaseName").ConnectionString = txtConnectionString.Text
myConfiguration.AppSettings.Settings.Item("myKey").Value = txtmyKey.Text
myConfiguration.Save()

我想你可能还需要在machine.config中设置AllowLocation。这是一个布尔值,指示是否可以使用该元素配置各个页面。如果“allowLocation”为false,则不能在单个元素中进行配置。

最后,如果您在IIS中运行应用程序并从Visual Studio运行测试示例,则会有所不同。ASP.NET进程标识是IIS帐户,ASPNET或NETWORK SERVICES(取决于IIS版本)。

可能需要授予ASPNET或NETWORK SERVICES修改web.config所在文件夹的访问权限。

用户回答回答于

更改web.config通常会导致应用程序重新启动。

如果你真的需要你的应用程序来编辑自己的设置,那么你应该考虑一种不同的方法,例如数据库设置或创建一个带有可编辑设置的XML文件。

所属标签

可能回答问题的人

  • EatRice

    16 粉丝0 提问10 回答
  • 学生

    8 粉丝476 提问4 回答
  • 不吃貓的鱼oo

    7 粉丝466 提问3 回答
  • 最爱开车啦

    9 粉丝503 提问3 回答

扫码关注云+社区

领取腾讯云代金券