gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 03:22:10 24 4
gpt4 key购买 nike

我对如何在运行时修改 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 值?

更新:好吧,五年后我又来了。我想指出的是,经验告诉我,我们不应该将任何在运行时可编辑的配置放在 web.config 文件中,而是应该将其放在一个单独的 XML 文件中,正如下面一位用户评论的那样。这不需要对 web.config 文件进行任何编辑来重新启动应用程序,这会导致愤怒的用户给您打电话。

最佳答案

您需要使用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()

我认为您可能还需要设置 AllowLocation在机器配置中。这是一个 bool 值,指示是否可以使用该元素配置各个页面。如果“allowLocation”为 false,则无法在单个元素中进行配置。

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

可能需要授予对 web.config 所在文件夹的 ASPNET 或网络服务修改访问权限。

关于asp.net - 如何在运行时修改 web.config appSettings?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/719928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com