gpt4 book ai didi

.net - .NET中长期运行的有状态服务

转载 作者:行者123 更新时间:2023-12-04 03:35:03 25 4
gpt4 key购买 nike

我需要在.NET中创建一个服务,该服务维护内存中的(内部)状态,生成多个线程,并且通常可以长时间运行。有很多选择-

  • 旧的Windows服务
  • Windows通讯服务
  • Windows Workflow Foundation

  • 我真的不知道该选哪个。大多数功能都在该服务使用的库中,因此服务本身非常简单。

    一方面,重要的是服务主机应尽可能接近“简单工作”,这不包括Windows服务。另一方面,很重要的一点是,不要因为没有外部事件而使主机不停止服务,这使WCF变得“很恐怖”。对于WF来说,最强的卖点是能够创建诸如工作流之类的流程,这是我不需要也不想要的。

    综上所述,过多的微软技术使我有些困惑。

    对于.NET中有状态的,长期运行的服务的问题,我希望在每个解决方案(或我没有提到的其他解决方案)的优缺点方面提供帮助,

    谢谢,
    阿萨夫

    附言
    我正在使用.NET 4。

    编辑:
  • 我所说的主机“简单地工作”是指,如果我创建的服务崩溃,它将被重新激活。
  • 我想这个问题的原因是我过去创建过Windows服务(我认为它是使用Win32 API的纯C++语言),并且我不想错过诸如此类的更简单的东西。

  • 到目前为止,感谢您的所有答复!
    阿萨夫

    编辑2:

    我将使用Windows服务,并且可能在其中托管WCF服务,以允许其他进程与其通信。

    谢谢,
    阿萨夫

    最佳答案

    根据您的描述,最好的选择是#1,Good Old Windows Service。您可以为其分配工作,它可以运行任意长时间,并且可以生成线程。不知道您所说的“简单工作”是什么意思,也不知道为什么这会使Windows Service无法正常运行。

    或者,您可以制作一个简单的控制台应用程序,但是您必须自己处理管理(重新启动等)。

    WCF本质上是.NET在Web上的远程处理,它本身不能处理长时间运行的进程。 Workflow Foundation可以处理长时间运行的工作流,但仅此而已。

    关于.net - .NET中长期运行的有状态服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2426974/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com