在App.config中保存ConnectionString

时间:2017-05-04 10:47:13

标签: c#

我尝试使用以下方法在运行时在app.config基于每个用户保存连接字符串:

public void saveConnectionString(string serverName, string conn)
{
    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
    var connectionString = config.ConnectionStrings.ConnectionStrings[serverName];
    config.ConnectionStrings.SectionInformation.AllowExeDefinition = ConfigurationAllowExeDefinition.MachineToLocalUser;
    if (connectionString == null)
    {
        config.ConnectionStrings.ConnectionStrings.Add(new ConnectionStringSettings
        {
            Name = serverName,
            ConnectionString = conn,
            ProviderName = "System.Data.SqlClient"
        });

        config.Save(ConfigurationSaveMode.Modified);
    }
    else
    {
        connectionString.ConnectionString = conn;
    }
}

我得到了例外:

锁定时无法编辑ConfigurationSection属性。

当我尝试获取ConfigurationAllowExeDefinition时。有没有办法解决这个问题?我需要创建自己的部分吗?

2 个答案:

答案 0 :(得分:0)

在代码 config.Save 后尝试使用以下代码: -

ConfigurationManager.RefreshSection("的ConnectionStrings&#34);

答案 1 :(得分:0)

   <error-page>
        <error-code>500</error-code>
        <location>/error/ExceptionHandler.jsp</location>
    </error-page>