我没有做任何会导致应用程序重新启动的事情(更改web.config、更改文件,甚至像删除App_Data中的文件夹这样的错误操作也不应该导致重新启动)。
这是否与服务器硬件有关?它的性能不是很强大。
查看这篇博客文章,了解应用程序域回收的一些可能原因。有很多可能的原因。
如果您无法解决问题,可以将会话状态从进程内切换到会话状态服务器或在数据库中存储会话状态。这两个选项都很容易设置,并且效果相当不错,但会对性能产生影响(我认为大约10-20%)。这里有一篇不错的文章,介绍如何设置会话状态服务器。
您确定ASP.NET应用程序实际上已经重新启动了吗?还是您认为这是因为会话丢失等原因导致的?
您的应用程序(和IIS)的会话超时变量是多少?超时的默认值是20分钟,所以我想问一下。您可以在web.config中设置超时时间,如下所示:
<system.web>
<sessionState timeout="120"/>
</system.web>
但除此之外,IIS本身也有一些地方可以进行设置。在IIS6的情况下,这些地方包括:
我不确定是否需要同时设置两个,但通常我会将两个设置为与web.config中相同的值。
事件日志中是否有任何关于重启原因的指示?
您的服务器上是否运行了任何反病毒软件?据我所知,对web.config文件进行更改会导致应用程序重新启动,因此在某些情况下,反病毒软件可能会通过web.config文件并更改文件属性,从而导致重置。
请尝试禁用任何反病毒软件或将Web应用程序目录从AV自动扫描中排除。