我在C#中编写了一个Windows服务,它在数据库上执行了大量后台管理任务。现在我的客户希望将整个shebang迁移到Azure。我对Azure几乎一无所知,而我的客户说你无法在Azure上运行Windows服务。我已经搜索了这个主题,并提出了一些非常具体的案例研究,说明有人将Windows服务迁移到Azure,假设对Azure的工作方式有相当高的理解,但没有关于Windows是否有一般文章服务可以在Azure下运行,也可以做些什么来适应它们。
我真的希望看到第一个问题的明确答案和解释(你可以在Azure下运行Windows服务吗?),如果答案是否定的,我很乐意找到一步一步的指南用于将Windows服务转换为Azure兼容的东西。
谢谢!
答案 0 :(得分:24)
是的,您可以这样做 - 有关简单的演练,请参阅http://blogs.msdn.com/b/mwasham/archive/2011/03/30/migrating-a-windows-service-to-windows-azure.aspx
其他相关信息链接:
答案 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服务的步骤:
将您的存储映射为VM中的新驱动器:
net use z:\ mystorage.file.core.windows.net \ endoint / u:myusername verylongkeythatendswith ==
可以在Azure管理控制台中找到存储密钥 - >存储 - >管理访问密钥
设置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自动化类似但使用工作流程