会话过期问题

会话过期问题

问题描述:

我创建MVC应用程序的MVC应用程序。在我有web.config.i.e会话过期问题

try 
{ 
    //// Helps to open the Root level web.config file. 
    Configuration webConfigApp = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~"); 
    AppSettingsSection objAppsettings = (AppSettingsSection)webConfigApp.GetSection("appSettings"); 
    //Edit 
    if (objAppsettings != null) 
    { 
     ////Modifying the AppKey from AppValue to AppValue1 
     objAppsettings.Settings["DaysToKeepJob"].Value = model.Keepjobsfolders.ToString(); 
     objAppsettings.Settings["DeleteLocalStoreStudies"].Value = model.DeleteLocalStoreStudies.ToString(); 
     objAppsettings.Settings["ManualBurnerNoOfCopies"].Value = model.ManualNumberofCopies.ToString(); 
     objAppsettings.Settings["DefaultBurner"].Value = model.DefaultBurner.ToString(); 
     objAppsettings.Settings["AutoBurnerNoOfCopies"].Value = model.AutoNumberofCopies.ToString(); 
     objAppsettings.Settings["SmartDisk"].Value = model.chkSMARTDisk.ToString(); 
     objAppsettings.Settings["ForcetodefaultTransfer"].Value = model.chkKeepjobsfolders.ToString(); 
     ////Save the Modified settings of AppSettings. 
     webConfigApp.Save(); 
    } 
    if (diskType.Title != null) 
    { 
     var res = DiskTypeSave(diskType); 
    } 
    return Json(new { Status = "Success", Msg = "Rules Saved Successfully." }, JsonRequestBehavior.AllowGet); 
} 

用于更新写代码,但该行webConfigApp.Save后();我的会话,即会话[“UserAccessRights”]变为空。我知道,因为更新web.config它得到空。

请提出来维护会话甚至web.config文件更新

+1

请勿修改您的web.config文件。将配置存储在别处:单独的JSON或XML文件,数据库或键/值对存储。 – mason

每次更改web.config时,都会在IIS中重新启动应用程序。

你可以做以下的事情之一:

  1. 使用其他的设置文件,XML,JSON等来存储这些值
  2. 使用数据库来存储每个用户的这些设置
  3. 使用SQL服务器保存会话或状态服务器,而不是内存(默认)

对于这一点,你首先要保持会话复制到本地变量,然后再次分配。但为此,您还必须保留Session.SessionId副本,因为在新会话中它会再次设置。