C# 在没有虚拟机的情况下在Azure上运行Windows服务是否有其他选择?
我们开发了一个窗口服务来处理Azure队列和添加/更新/删除数据库记录[仅与数据库相关的实现] 当前实现[运行良好,没有问题]: 创建了一个窗口服务 部署在Azure VM上 我们正试图找到更好的替代方案,帮助将我们的业务实现[目前包装为Windows服务]部署到Azure网站和/或Azure云服务中 一种可能的选择:C# 在没有虚拟机的情况下在Azure上运行Windows服务是否有其他选择?,c#,asp.net,asp.net-mvc,azure,amazon-ec2,C#,Asp.net,Asp.net Mvc,Azure,Amazon Ec2,我们开发了一个窗口服务来处理Azure队列和添加/更新/删除数据库记录[仅与数据库相关的实现] 当前实现[运行良好,没有问题]: 创建了一个窗口服务 部署在Azure VM上 我们正试图找到更好的替代方案,帮助将我们的业务实现[目前包装为Windows服务]部署到Azure网站和/或Azure云服务中 一种可能的选择: 创建ASP.NET Mvc网站 创建3个动作 a。启动[启动静态计时器] b。停止[停止静态计时器] c。执行[在计时器运行时通过WebRequest调用] 在Azure网站上部
4) Windows服务是当前场景中的最佳解决方案吗 使用工作者角色、服务总线和云服务。它是一个更健壮的实现,并且为您所寻找的内容提供了API。检查那么,NT服务是做什么的呢?它从系统启动时开始,运行某种无限循环来“监听”某些内容或处理某些它知道从何处获取的内容
工作者角色(以及web角色-这些实际上是IIS中的工作者角色)的作用也一样-Azure基础结构将启动它们(如果失败则重新启动),然后调用
RoleEntryPoint.OnStart()
进行初始化,然后调用RoleEntryPoint.Run()
被调用,后者要么永远休眠,要么运行无限循环。基本上,它与NT服务相同,不同之处在于NT服务绑定到特定的机器,而worker/web角色绑定到“部署”——执行代码和代码设置的组合。Azure WebJobs也是虚拟机上Windows服务和云服务中worker角色的替代方案