ASP.NET网站会话重置原因及文件修改影响咨询
ASP.NET 会话重置触发场景及疑问解答
你的现有理解验证
你的部分理解是准确的,补充细节如下:
- 修改
App_Code文件夹内的文件、global.asax文件时,确实会触发ASP.NET应用程序重启,进而导致所有使用默认InProc模式的用户会话被重置。因为这两个位置属于应用核心编译资源,修改后系统会重新编译并重启应用池。 - 顶级目录下的
.cs文件如果不属于项目编译的核心依赖(比如只是未被引用的独立类文件),修改它们不会触发应用重启,也就不会影响会话。若该文件是项目编译项,一般也不会触发全局重启,这点你的理解基本正确。
触发会话重置的常见操作
除你提到的两种情况,以下操作也会导致应用重启、会话重置:
- 修改
web.config文件的任何节点(包括appSettings、connectionStrings等) - 替换、添加或删除
Bin文件夹内的程序集文件 - 修改
App_GlobalResources、App_LocalResources文件夹内的资源文件 - 修改
App_WebReferences文件夹内的引用配置 - 应用程序池因资源耗尽、回收策略触发自动回收
单个页面文件修改的影响
修改某个.aspx或.aspx.cs页面文件后,不会重置正在访问该页面的用户会话。ASP.NET采用页面独立编译机制,单个页面修改后仅会重新编译该页面的代码,不会触发整个应用的重启。用户当前会话会保持,下次访问该页面时才会加载新编译的版本。
注意:若会话使用InProc模式(默认),会话存储在应用进程内,仅应用重启/回收会导致会话丢失;若使用StateServer或SQLServer模式,会话存储在外部服务,应用重启不会影响会话有效性。
内容的提问来源于stack exchange,提问作者Gazza T
相关产品推荐
相关产品推荐

