我想构建一个在专用 Windows 服务器上运行的应用程序,接收包含“请求的操作”的 Web 请求(来自单独的 ASP.NET Core Web 应用程序),并构建这些“请求的操作”的任务队列。这些“请求的操作”必须在 Windows 服务器程序主线程上的任务队列中按顺序处理,并将响应数据返回到 ASP.NET Core 应用程序。
数据将包括生成的文件。
使用 HttpListener 接收请求、使用任务队列系统管理顺序处理以及使用 HttpClient 生成响应的 .NET 应用程序(例如 WPF 应用程序或 Windows 窗体应用程序)用于此目的是否合理?
基本上,我希望指出这些概念的总体方向,并了解可以针对这些类型的需求实施哪些方法。
谢谢你
您可以构建两个独立的应用程序,一个接收 HTTP 请求的 Web 应用程序,以及一个处理队列中项目的后台工作应用程序。
https://learn.microsoft.com/en-us/visualstudio/get-started/csharp/tutorial-aspnet-core?view=vs-2022
https://learn.microsoft.com/en-us/dotnet/core/extensions/workers?pivots=dotnet-8-0
原因是 ASP.NET 应用程序将为您处理 Web 请求做大量繁重的工作。工作应用程序还旨在连续运行,它可以长时间轮询队列,并一次处理所有内容。您还可以通过异步工作线程向 API 发出 HTTP 请求。