Session有什么重大 BUG,用什么方法加以解决?
- IIS中由于有进程回收机制,系统繁忙的话会导致
Session
会丢失,IIS 重启也会造成Session
丢失。 - 这并不是Bug,而是
In-Proc
方式存储Session
的缺陷,缺陷是和 Bug 不一样的,In-Proc 方式存储Session
会由服务器来决定什么时候释放Session
。 - 可以用 StateServer 或 SQL Server 数据库的方式存储
Session
,不过这种方式效率比较低,而且无法捕获Session
的 END 事件。
ASP.NET中的错误机制
- 页面中未捕获的异常会触发
Page_Error
- 应用程序中的未捕获异常会触发
Application_Error
- 可以通过
HttpContext.Current.Server.GetLastError()
,HttpContext.Current.Error
,拿到未捕捉异常,记录到Log4Net日志中,也可以定制错误页来将显示一个友好的报错页面。