在没有VM的情况下,在Azure上运行窗口服务是否有其他选择?

时间:2013-12-12 02:52:50

标签: c# asp.net asp.net-mvc azure amazon-ec2

我们开发了一个窗口服务来处理Azure队列并添加/更新/删除数据库记录[仅与数据库相关的实现]。

当前实施[正常运行并且没有问题]:

创建了一个窗口服务 部署在Azure VM上

我们正在尝试寻找更好的替代方案,以帮助将我们的业务实现[目前包含在Window Service中]部署到Azure网站和/或Azure云服务中。

一种可能的选择:

  1. 创建ASP.NET Mvc网站
  2. 创建3个动作

    一个。启动[启动静态计时器]

    湾停止[停止静态计时器]

    ℃。执行[通过计时器上的WebRequest调用]

  3. 在Azure网站上部署该网站。

  4. 1)你有没有在云[Azure /亚马逊或其他]上实现上述替代方案?

    2)如果是,想知道所面临的问题及其解决方法/解决方案。

    3)有更好的选择吗?

    4)Window Service是当前场景中的最佳解决方案吗?

3 个答案:

答案 0 :(得分:2)

那么,NT服务有什么作用?它从系统启动开始,运行某种无限循环来“监听”某些东西或者处理它知道从何处获取的东西。

辅助角色(以及Web角色 - 实际上是IIS的辅助角色)也是一样的 - Azure基础架构启动它们(如果失败则重新启动),然后调用RoleEntryPoint.OnStart()进行初始化,然后调用{{调用1}}后者应该永远睡眠或运行无限循环。基本上它与NT服务相同,不同之处在于NT服务绑定到特定机器,而工作者/ Web角色绑定到“部署” - 执行代码和代码设置的组合。

答案 1 :(得分:1)

使用员工角色,服务总线和云服务。它是一个更强大的实现,并提供您正在寻找的API。查看this article

答案 2 :(得分:0)

Azure WebJobs也是VM上的Windows服务和云服务中的工作者角色的替代方法

https://azure.microsoft.com/en-us/documentation/videos/azure-webjobs-basics/