什么是Azure上Windows服务的等价物?

velaa5lx  于 2022-11-25  发布在  Windows
关注(0)|答案(3)|浏览(107)

如何在Azure上拥有始终运行的进程?在Windows上,它是Windows服务,但我是否必须获得一个虚拟机才能拥有一个运行的进程?我查看了各种计算选项,但似乎没有一个选项与Windows服务的功能相匹配。是否有其他方法可以在Azure上实现Windows服务的功能?

4uqofj5v

4uqofj5v1#

在Azure中运行代码没有特定的方法。您有很多选择,选择哪一种完全取决于您(也是一个观点问题)。但是,客观地说:

  • 在Windows Server虚拟机中像往常一样安装服务
  • 在VM(Windows或Linux,取决于语言)中运行代码,不使用Windows服务 Package 器
  • 将您的核心代码从服务中提取出来,并在Web/worker角色(云服务)中运行它。
  • 在WebJob中运行代码。
  • 在Web应用程序中运行代码(您需要添加某种方式来访问它,例如在它前面放置REST API)

我看到@Neil在他的回答中建议使用Service Fabric,这也是可行的,只是你需要学习Service Fabric的一般知识,因为它的工作原理有点不同。

f5emj3cl

f5emj3cl2#

您应该查看持续运行的Web作业。请参阅在Microsoft Azure上使用WebJobs运行后台任务。
其他选择是PaaS云服务工作者角色和Azure Service Fabric可靠服务-但如果您只想要基本服务,这些可能会大材小用。

erhoui1w

erhoui1w3#

Azure功能是将Windows服务迁移到基于云的服务中的一个很好的候选者。Azure功能可以由定时器触发,因此就像Windows服务一样,可以在一天中的某个时间进行调度。
请阅读我在进行此类迁移时所写的笔记:https://dumanhilltechnologies.com/blog/windows-service-migration-to-azure-function/

更新以上链接不再可用,因此请在此处参阅Microsoft关于计时器触发Azure功能的文档https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-timer?tabs=in-process&pivots=programming-language-csharp

net核心中的其他选项是编写一个BackgroundService并使用Azure应用服务或使用Azure容器服务将其托管在容器示例中。

相关问题