如何更新web.config文件[asp.net]中的设置?

时间:2012-04-02 09:52:19

标签: asp.net configuration

如何更新ASP.Net中web.config文件中的设置?

<appSettings>
  <add key="DataSource" value="localhost\SQLEXPRESS,1433">
  <add key="InitialCatalog" value="CenTimetracker" />
  <add key="user" value="uzer" /><add key="password" value="pazz" />
  <add key="IntegratedSecurity" value="True" />
  <add key="configured" value="False" />
</appSettings>

我正在开发一个ASP.NET网站,我正在使用web.config文件来保存数据库连接的详细信息。如上面的代码段所示。

我正在使用以下代码在运行时检索已保存的应用程序设置

string dataSource = ConfigurationManager.AppSettings["DataSource"].ToString();

如何将文本框中的值分配给web.config文件?我使用了以下代码,但它没有保存配置文件。

ConfigurationManager.AppSettings["DataSource"] = TextDataSource.Text;

4 个答案:

答案 0 :(得分:5)

Configuration myConfiguration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
myConfiguration.AppSettings.Settings["DataSource"].Value = "some value";
myConfiguration.Save();

希望它有所帮助。

答案 1 :(得分:0)

@KeizerßloodŚucker:您可以按如下方式更改您的appsetting值:

    Configuration myConfiguration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("path of webconfig file");
    myConfiguration.ConnectionStrings.ConnectionStrings["myDatabaseName"].ConnectionString = txtConnectionString.Text;
    myConfiguration.AppSettings.Settings.Add("key","value");
    myConfiguration.Save();

答案 2 :(得分:0)

除了使用Configuration.Save()保存配置外,还需要注意保存文件的文件权限。您需要查看用于运行应用程序的帐户,然后将该帐户的“修改/写入”权限添加到web.config。如果允许匿名访问,通常需要设置iusr_ [server]的权限。在IIS中查找这些信息。

答案 3 :(得分:0)

您还可以在尝试使用此值的同一页面上加载其他值。 我在调试模式下使用这样的东西。 我选择这个是因为上面的方法删除了与应用设置相关的任何评论。

public string _path;
public string Path
{
    get
    {
        if(_path == null || _path == "")
        {
            if (System.Diagnostics.Debugger.IsAttached)
            {
                _path = "localhost\SQLEXPRESS,1433";
            }
            else
            {
                _path = ConfigurationManager.AppSettings["DataSource"];
            }
            return _path;
        }
        return _path;
    }
}