有些参数的设置我保留在注册表里。
需要在服务器程序的启动时,立刻加载,驻留到内存中。
如果通过页面修改这些参数,也能改变内存中的值。
这样,客户端程序访问时,就不用每次都读硬盘了。请问该如何实现?(做了一些session,application的实验,发现无法实现。
使用appSettings确实可以在启动时加载,但是不知如何修改。)请高手指教。

解决方案 »

  1.   

    定义一个static变量也能满足要求吧
      

  2.   

    可以用静态变量appSettings可以和操作XML文件一样改.
      

  3.   

    就是用
    Application["ValueKey"]=表达式值;
    修改啊
      

  4.   

    appSettings,不能修改,除非你重启程序才可以生效,如果你既想更改内存上,又想更改硬盘上的,你不读硬盘是不可能,我们可以做些改进就是同时写内存和硬盘,而不要在读了,如果更改频繁,就最好少写些硬盘.还有application是对程序全局,session是对每个登录的用户全局,应该可以实现.
      

  5.   

    Global.asax.cs文件里
    public class Global : System.Web.HttpApplication
    {
    /// <summary>
    /// 必需的设计器变量。
    /// </summary>
    private System.ComponentModel.IContainer components = null;
    下面:
    public static string MasterName;appSettings修改:
    string path = Server.MapPath("Web.config");
    DataSet read = new DataSet();
    read.ReadXml(path);
    try
    {
    read.Tables[10].Rows[0][1] = "Jerry";
    read.AcceptChanges();
    read.WriteXml(path);
    Show.Text = "修改成功";
    }
    catch
    {
    Show.Text = "意外错误!可能是该文件为只读";
    } DG.DataSource = read.Tables[10];
    DG.DataBind();
    Show.Text += "path=" + path + "ConnStr=" + ConfigurationSettings.AppSettings["ConnStr"];
      

  6.   

    你可以将配置放到cache中,读取的时候,没有从cache读到,就去读注册表,然后放到cache中去,修改的时候,修改注册表,同时修改cache,这样就可以减少对硬盘的读取,并保证数据的可靠性。