Windows服务到Azure?

时间:2011-10-17 13:36:25

标签: c# windows-services azure

我在C#中编写了一个Windows服务,它在数据库上执行了大量后台管理任务。现在我的客户希望将整个shebang迁移到Azure。我对Azure几乎一无所知,而我的客户说你无法在Azure上运行Windows服务。我已经搜索了这个主题,并提出了一些非常具体的案例研究,说明有人将Windows服务迁移到Azure,假设对Azure的工作方式有相当高的理解,但没有关于Windows是否有一般文章服务可以在Azure下运行,也可以做些什么来适应它们。

我真的希望看到第一个问题的明确答案和解释(你可以在Azure下运行Windows服务吗?),如果答案是否定的,我很乐意找到一步一步的指南用于将Windows服务转换为Azure兼容的东西。

谢谢!

7 个答案:

答案 0 :(得分:24)

答案 1 :(得分:6)

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

我认为你会更乐意转换为WorkerRole,这应该非常简单。

答案 2 :(得分:2)

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

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

WebJobs很容易运行,但没有Work Roles的强大功能。请参阅以下内容进行比较: Worker Role vs Web Job

答案 3 :(得分:0)

是的,没问题,这是另一个很好且易于理解的例子Get Started with Azure Cloud Services。它(也)清楚地显示了如何实现WorkerRole。您可以使用WebRole管理您的服务。

答案 4 :(得分:0)

以下是在使用Windows Server 2012 R2运行VM的Windows Azure上安装Windows服务的步骤:

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

    net use z:\ mystorage.file.core.windows.net \ endoint / u:myusername verylongkeythatendswith ==

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

  • 将所有必要的安装文件复制到映射存储(复制和粘贴)
  • 将nssm复制到本地驱动器(不是z:因为它使用MAFS文件系统而且无法使用低级别的Windows API命令访问)
  • 使用以下条目创建.bat文件
  

设置username = xxx   设置密码= yyy   打电话给d:\ nssm安装“我的服务”   “%programfiles%\ PathToService \ myservice.exe”“ - p 8677”       d:\ nssm设置“我的服务”ObjectName“%username%”“%password%”       sc failure“我的服务”操作= restart / 60000 / restart / 60000 / restart / 60000 reset = 240       d:\ nssm start“我的服务”

用户名和密码应该是您用来创建VM的用户名和密码。

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

享受!

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

答案 5 :(得分:0)

我会为此使用Web作业,它的调度功能和简单的部署/配置使这成为一项微不足道的任务。压缩你的.exe并上传它,然后设置一个时间表,你就完成了。

答案 6 :(得分:-1)

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