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

如何更新web.config文件[asp.net]中的设置?,asp.net,configuration,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"

如何在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>
如何将文本框中的值分配给web.config文件?我使用了下面的代码,但它没有保存配置文件

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

希望有帮助。

@KeizerßloodŚucker:您可以按如下方式更改应用程序设置值:

    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();

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

您也可以在尝试使用此值的同一页面上加载不同的值。 我在调试模式下使用类似的东西。 我之所以选择此选项,是因为上面的方法会删除与应用程序设置相关的任何注释

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;
    }
}

我甚至尝试过它,但它再次生成了一个异常,即“加载配置文件时出错:未能映射路径“/”。执行.OpenWebConfiguration(“~”)??@KeizerßloodŚucker时,是否需要定义web.config的位置,如果您的web.config位于根目录中,则此代码必须工作。我使用它在我的项目中没有任何问题。您的配置文件保存在哪里?web.config位于默认位置,如以下屏幕截图所示:S@KeizerßloodŚucker,我相信我为您找到了解决方案。尝试使用管理员权限运行VS。请让我知道它是否对您有帮助。非常感谢它在visual studio中运行良好:)但是,一旦我在IIS服务器中托管了该站点,它会说“加载配置文件时出错:对路径“c:inetpub\wwwroot\CenTrackerWebService\u joekcit.tmp”的访问被拒绝(c:inetpub\wwwroot\CenTrackerWebService\web.config)我还更改了web.config的访问权限
    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();
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;
    }
}