我有一个在带有 IIS 7 的 Windows Server 2008 上运行的 ASP.net MVC 应用程序。一切运行正常,但每天晚上应用程序池都会停止并且我收到错误http 503
,我需要每天早上重新启动该池。
该服务器由其他人维护,我知道它在晚上正在执行其他工作,我认为这是导致这种情况的原因。此外,我知道我在晚上会收到数据库连接超时(SQL Server 在同一台计算机上运行)。
我有兴趣了解:
- 为什么会发生这种情况。这是 IIS 的一个功能吗?当服务器速度太慢或发生太多错误时,它会停止应用程序池吗?
- 是否有某种配置可以阻止这种情况,或者是否有办法让应用程序池尝试自行重新启动?
如有任何提示我将不胜感激。
答案1
是的,IIS 7 内置了一个错误间隔。我这里只有荷兰语版本的 IIS。所以我可能无法完全正确地翻译它。
转到Application Groups
-> [右键单击指定的应用程序] -> Advanced Settings
。
转到类别Fast security against errors
。
您可以在此处看到,它默认启用,错误间隔为 5 分钟,每 5 个错误一次。您可以禁用此选项或对其进行调整。您还可以创建一个批处理作业,每天早上启动您的应用程序。此选项对您的数据库来说更安全,因为当错误安全性被禁用时,使用 DoS 攻击关闭您的网站和数据库将变得更加困难。
您可以使用如下命令行启动该应用程序:
%windir%\system32\inetsrv\appcmd start apppool /apppool.name:[应用程序名称]