【发布时间】:2019-03-27 03:36:41
【问题描述】:
我需要从一个 Windows 服务并行运行 6 到 8 个同一个控制台应用程序实例,任何实例中的异常都不应导致主服务停止。 每个实例将使用唯一的 AD 帐户使用 REST Web 服务,实例将需要单独的配置信息来初始化自己。 Windows 服务将为所有用户运行(即使未登录),也可以使用一个服务帐户运行。 我的问题是在上述情况下要考虑什么因素
- 我应该使用多线程还是启动多进程
- 是否需要使用应用程序域隔离每个进程?
- 是否需要在启动每个实例之前分配 GUID?
- 我应该遵循哪些最佳做法?
- 如何保持对实例的最佳控制,例如,如果一个实例未完成或挂起,而另一个应继续服务?
【问题讨论】:
-
您想根据请求动态启动子控制台并使其能够使用该服务,还是需要 Windows 服务来启动子控制台?如果是之前,我建议使用 Windows 服务来托管 WCF 服务,然后创建一个可以动态连接/断开该服务的 WCF 客户端控制台应用程序。 WCF 为会话提供架构(如果您使用网络管道/远程登录/等作为端点)。否则,请提供有关您/用户打算如何与所述应用程序交互的更多详细信息。
-
是的,我需要动态创建实例。
-
好的,那么我的建议是研究 WCF 以及如何在 Windows 服务中托管 WCF 服务。在线阅读一些简单的教程,尤其是 MSDN 上的教程,您将在不知不觉中启动并运行。获得服务后,Visual Studios 可以为您自动生成所有客户端代理。
标签: c# windows multithreading service multitasking