我在iis上运行了一个asp.net mvc 5网站。在Application_Start
中,我调用了此方法Run();
。
private void Run()
{
Task t = new Task(() => new XyzServices().ProcessXyz());
t.Start();
t.ContinueWith((x) =>
{
Thread.Sleep(ConfigReader.CronReRunTimeInSeconds);
Run();
});
}
我正在运行一个处理一些数据的任务,一旦任务完成,我等待20-30秒,然后重新运行任务。
现在一切正常。但是经过一段时间后,只有当我重新打开网站网址时,流程才会停止并恢复。
我如何克服这个问题?有什么想法或建议吗?
答案 0 :(得分:0)
您的应用程序池可能会自动关闭
1)打开IIS。
2)右键单击Web应用程序的Application-Pool,然后选择" Advanced Settings"。
3)设置"快速失败保护" - > "启用"为假。
如果为true,则在指定时间段内存在指定数量的工作进程崩溃时,将关闭应用程序池。默认情况下,如果在5分钟的间隔内发生5次崩溃,则会关闭应用程序池。