首页 > 解决方案 > Asp.Net Core 防止控制台应用程序关闭

问题描述

我们有一个内置在 IIS 上的 asp.net core 2.0 的 Web 应用程序。从这个应用程序中,我们正在调用一个控制台应用程序,该应用程序执行来自数据库的排队请求。

问题是应用程序被很少人使用,因此它和控制台进程执行很长时间的处理。但是当 Web 应用程序关闭时,此控制台应用程序会自动停止。从事件日志中,我们得到以下输出。(来源:IIS AspNetCore 模块)

发送关闭 HTTP 消息以处理“3548”并收到 HTTP 状态“202”。

我们尝试将 Web 应用的 StartMode 设置为始终在 IIS 应用程序池高级设置中运行。但是,当一段时间后没有人使用该应用程序时,它仍然会停止。

有什么解决办法吗?

标签: c#iisasp.net-coreconsole-application

解决方案


您似乎错误地解决了问题。我不会从 Web 应用程序调用控制台应用程序。相反,理想情况下,您应该创建一个后端服务(例如:带有 .NET Core 的 Windows 服务),它会定期监控您的队列表并逐步对其进行处理。

这将使您的代码模块化(参考SOLID 原则)。它还将缓解您在与 Web 应用程序相同的进程中运行控制台应用程序时遇到的问题。


推荐阅读