Windows Service to Azure?

本文关键字:Azure to Service Windows | 更新日期: 2023-09-27 18:11:32

我用c#写了一个Windows Service,它在数据库上做了一大堆后台管理任务。现在,我的客户想把整个系统迁移到Azure。我对Azure几乎一无所知,我的客户说你不能在Azure上运行Windows服务。我在谷歌上搜索了一下这个话题,得出了一些非常具体的案例研究,关于一些人是如何将他们的Windows服务迁移到Azure的,假设对Azure的工作原理有相当高的理解,但是没有关于Windows服务是否可以在Azure下运行,或者如何适应它们的一般文章。

我真的很想看到一个明确的答案和解释第一个问题(你能在Azure下运行Windows服务吗?),如果答案是不,我很想找到一个循序渐进的指南,将Windows服务转换为Azure兼容的东西。

谢谢!

Windows Service to Azure?

是的,您可以这样做-有关简单的演练,请参阅http://blogs.msdn.com/b/mwasham/archive/2011/03/30/migrating-a-windows-service-to-windows-azure.aspx

其他相关链接:

  • 让服务在Azure Worker角色中运行
  • http://www.codeproject.com/KB/azure/WCFWorkerRole.aspx

你可以运行任何你想要的,包括Windows服务。

我认为您会更乐意转换为WorkerRole,虽然,这应该是非常直接的。

对于较小的作业,您可以使用Azure的WebJob功能,它在web应用程序中运行(如果您在前端站点正在管理的相同数据上执行后台任务,则非常有用)。

这里有一个很好的细分:https://azure.microsoft.com/en-us/documentation/articles/web-sites-create-web-jobs/

WebJobs很容易运行,但是没有Worker role的功能。请看下面的比较:Worker Role vs Web Job

是的,没问题,这里是另一个很好的和容易遵循的例子开始使用Azure云服务。它(也)清楚地展示了如何实现WorkerRole。你可以使用WebRole来管理你的服务

以下是在windows Azure运行的虚拟机上安装windows服务的步骤:

  • 在Windows Azure控制台中启动虚拟机并使用远程桌面连接器连接到它
  • 将您的存储映射为VM中的新驱动器:

    .net使用z: 'mystorage.file.core.windows.net'endoint/u:myusername verylongkeythatendswith==

存储密钥可以在Azure管理控制台->存储->管理访问密钥

中找到
  • 将所有必要的安装文件复制到映射的存储(copy&paste)
  • 将nssm复制到本地驱动器(不是z:因为它使用mats文件系统,不能使用低级windows API命令访问)
  • 创建一个带有以下条目的.bat文件

设置用户名= xxx设置密码= yyy安装"My service"%programfiles%'PathToService'myservice.exe" "-p 8677"d:'nssm set "My service" ObjectName "%username%" "%password%"My service"actions= restart/60000/restart/60000/restart/60000 reset= 240d:'nssm start "My service"

用户名和密码应该是创建虚拟机时使用的用户名和密码。

  • 运行脚本。该服务应该在服务列表中可见。

享受吧!

PS:我使用NSSM来简化服务部署。

我会使用web job,它的调度功能和易于部署/配置使这成为一个微不足道的任务。把你的。exe压缩并上传,然后设定一个时间表,你就完成了。

是的你可以,在网站上有一个任务web job y可以创建一个批处理,sh, powershell(需要azure powershell)或使用web job API, rest API,另一方面我们有azure自动化是类似的,但使用工作流