我们有一个ASP.net网站,我使用会话变量。但是当客户使用我的网站时,如果我更改了web.config,那么它会导致应用程序池重新启动,所有会话都会丢失。
现在,在我的情况下,该网站用于提交客户的查询。因此,一旦提交页面或表单,客户的数据将被写入我们的数据库。现在,客户编号,姓名等所有信息都将丢失,只会提交他的查询(不是会话变量)。因此,我们只获得查询,并且没有相关信息发布者。因此,找到谁发布它是一个严重的问题。
此外,如果我更改bin文件夹文件,那么它是否会导致同样的问题? 那么这个问题的最佳解决方案是什么?
答案 0 :(得分:2)
是的,它是内存会话状态的预期行为 - 重新启动IIS或应用程序池的回收或应用程序域的回收将终止状态。即更改web.config
或触摸站点中的足够文件(包括bin文件夹)将通过内置的ASP.Net逻辑导致应用程序域回收。
要解决它使用进程外ASP.Net SQL会话状态:构建SQL会话状态或状态服务,ASP.Net还有许多其他会话状态实现。