Jos*_*ger 6 asp.net iis session
我在IIS7服务器上运行ASP.NET应用程序.它已经运行了很长时间,但在过去一周左右的时间里,它已经每天多次丢弃所有用户的会话.我启用了所有应用程序池回收日志记录选项,如http://blogs.iis.net/ganekar/archive/2008/12/12/iis-7-0-application-pool-recycles-log-a-event中所述-in-windows-event-log.aspx,但我的事件日志中没有得到任何内容.
事件日志中没有错误,除了我的所有用户都丢失了会话之外没有可见的症状.
IIS是否还有其他原因可以回收我的应用程序池?是否有任何其他类型的日志记录,我可以启用以找出正在发生的事情?
当您遇到此行为时,您最近是否已将文件部署到服务器?
在编译标记上有一个名为numRecompilesBeforeAppRestart的令人讨厌的配置选项:
<system.web>
<compilation debug="true" numRecompilesBeforeAppRestart="15">
Run Code Online (Sandbox Code Playgroud)
这个值默认为15.我之前经历过一个杀死所有用户会话的应用程序,这对我来说是罪魁祸首.在一个轻微使用的Web应用程序更新后大约一天(新文件被复制到服务器;这最终覆盖了每个文件,编号为数百个),我们将获得持续的AppDomain重新启动,所有用户的所有会话值都会消失.
我发现这个错误报告列出了我遇到的行为:http: //support.microsoft.com/kb/319947
这是我的场景中非常重要的相关文本:
但是,当您将许多新的.aspx或.ascx文件加载到服务器(例如,61个文件)时,会发生此问题.服务器在重新编译前15个文件时卸载应用程序,每次重新编译另外15个文件,直到服务器达到61.这导致四个应用程序重新启动,即使只需要一个.
我将值切换为99999,问题就消失了.这意味着在我的工作进程中会积累更多内存,所以我在IIS AppPool回收设置中添加了每日回收(当我的站点没有用户时凌晨3点).
| 归档时间: |
|
| 查看次数: |
4380 次 |
| 最近记录: |