我们在IIS上托管了一个内置于asp.net core 2.0中的Web应用。从这个应用程序中,我们正在调用一个控制台应用程序,该应用程序执行来自数据库的排队请求。
问题是应用程序的使用人数很少,因此控制台进程执行长时间的处理。但是,当Web应用程序关闭时,该控制台应用程序会自动停止。从事件日志中,我们得到以下输出。 (来源:IIS AspNetCore模块)
已发送关闭HTTP消息以处理“ 3548”并收到了HTTP状态 '202'。
我们试图将Web应用程序的StartMode设置为始终在IIS应用程序池高级设置下运行。但是,仍然有一段时间没有人使用该应用程序时,它就会停止。
有解决方案吗?
答案 0 :(得分:1)
您似乎正在错误地解决问题。我不会从Web应用程序调用控制台应用程序。相反,理想情况下,您应该创建一个后端服务(例如:Windows Service with .NET Core),该服务定期监视您的队列表并逐步对其进行填充。
这将使您的代码模块化(参考SOLID principles)。它还可以缓解在以与Web应用相同的过程中运行控制台应用所遇到的问题。