您提到“按需”启动流程。WAS - Windows Activation Service,或有时称为 Windows Process Activation Servvice,尽管它从未缩写为“WPAS” - 是 Windows 内部提供按需进程激活的东西。它的工作方式——当消息到达时,WAS 可以启动一个工作进程来处理消息。在 IIS7 之前,WAS 已相当紧密地集成到 IIS 中。它主要用于激活执行 Web 工作的进程 - 例如 ASP.NET 工作进程。在 IIS7 中,WAS 被通用化,因此它可以激活基于非 HTTP 以及 HTTP 消息的工作进程。如果您编写应用程序以通过 WCF 接收消息,则基本上可以“免费”获得激活。如果是 HTTP、TCP、MSMQ,则适用;肥皂或其他。
不过,这种按需启动的关键在于它与通信相关。事实上,WAS 的流程生命周期模型也与通信相关联。默认情况下,如果一段时间后没有传入消息,则该进程将被 WAS 关闭。这可能是也可能不是你想要的。
至于进程托管 - COM+ 提供了一个托管环境,但它主要用作通信进程的主机。这可能不适合您。
如果您有计算引擎,您可能只想运行 Windows 服务。可以通过管理或编程方式启动和停止这样的服务。在后一种情况下,您可以想象一个 WAS 激活的工作进程以编程方式启动 Windows 服务。
您还可以想象编写一个简单的 Windows 服务来监视消息的位置(文件系统、消息队列等),当该文件或消息到达时,Windows 服务启动一个计算引擎进程,该进程本身不是 Windows 服务,但只是一个过程。
说到 MSMQ - 这与 MSMQ 触发器的模型基本相同。您可以将 MSMQ 配置为在消息到达特定队列时启动进程。
有很多选择。