asp.net中动态修改配置文件的方法

    技术2022-05-20  45

     

    很多时候,我们可能会在asp.net中动态的修改配置文件,我们可以使用如下代码中涉及到的类来完成配置文件,下面的代码是修改connectionstring的例子:

    System.Configuration.Configuration c  = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");        c.ConnectionStrings.ConnectionStrings.Clear();        ConnectionStringSettings s = new ConnectionStringSettings();        s.ProviderName = "System.Data.OleDb";        s.ConnectionString = "Provider=Microsoft.oledb.jet.4.0;data source=c://abc.mdb";        s.Name = "myaccess";        c.ConnectionStrings.ConnectionStrings.Add(s);        c.Save();

     

     

    实例:

    web.config

    --------------------

    <configuration>

    <appSettings>

      <add key="MyInt" value="1234" />

      <add key="LogFolder" value="D:/WorkSpace/JavaScript/Slicing/SlicingWeb/log" />

     </appSettings>

    </configuration>

    ----------------------

    protected void Page_Load(object sender, EventArgs e)

        {

     

            //FormSave();

            WebSaveConfig();

        }

     

        /// <summary>

        /// 当不在独立 exe 内部运行时,必须指定 exePath

        /// OpenExeConfiguration(ConfigurationUserLevel.None)这个用于winform程序

        /// </summary>

        public void FormSave()

        {

            Configuration appCfg = ConfigurationManager.OpenExeConfiguration(

                                        ConfigurationUserLevel.None);//?

            AppSettingsSection appSettings = appCfg.AppSettings;

            int myInt;

            if (int.TryParse(appSettings.Settings["MyInt"].Value, out myInt))

            {

                Response.Write(myInt);

                myInt *= 10;

                appSettings.Settings["MyInt"].Value = myInt.ToString();

                //appCfg.Save();

                Response.Write("</br>" + myInt);

            }

        }

     

        /// <summary>

        /// asp.net web中

        /// </summary>

        public void WebSaveConfig()

        { 

            //string path = Server.MapPath("~/Web.config");

            Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");

            config.ConnectionStrings.ConnectionStrings.Clear();

            AppSettingsSection appSettings = config.AppSettings;

            int myInt;

            if (int.TryParse(appSettings.Settings["MyInt"].Value, out myInt))

            {

                Response.Write(myInt);

                myInt *= 10;

                appSettings.Settings["MyInt"].Value = myInt.ToString();

                config.Save();

                Response.Write("</br>" + myInt);

            }

        }

    ------------------

    执行之后配置文件变化

    web.config

    --------------------

    <configuration>

    <appSettings>

      <add key="MyInt" value="1234" />

      <add key="LogFolder" value="D:/WorkSpace/JavaScript/Slicing/SlicingWeb/log" />

     </appSettings>

    </configuration>

    ----------------------

     

     

     

     


    最新回复(0)