Windows 服务到 Azure?

发布于 2024-12-10 11:52:03 字数 377 浏览 0 评论 0原文

我用 C# 编写了一个 Windows 服务,它在数据库上执行大量后台管理任务。现在我的客户想要将整个 shebang 迁移到 Azure。我对 Azure 几乎一无所知,而且我的客户说无法在 Azure 上运行 Windows 服务。我在 google 上搜索了这个主题,并得出了一些非常具体的案例研究,说明某人将 Windows 服务迁移到 Azure 的做法,假设对 Azure 的工作原理有相当高的了解,但没有关于 Windows 是否适用的一般性文章服务可以在 Azure 下运行,或者如何调整它们。

我真的很想看到第一个问题的明确答案和解释(你可以在 Azure 下运行 Windows 服务吗?),如果答案是否定的,我很想找到一个分步指南来转换Windows 服务与 Azure 兼容。

谢谢!

I've written a Windows Service in C# that does a whole bunch of background admin tasks on the database. Now my customer wants to migrate the whole shebang to Azure. I know next to nothing about Azure, and my customer says you can't run a Windows Service on Azure. I've googled for this topic and come out with a few very specific case studies of what somebody did to move their Windows Service to Azure, assuming a fairly high level of understanding of how Azure works, but no general articles about whether or not Windows Services can run under Azure, or what to do to adapt them.

I would really like to see a clear answer and explanation to the first question (can you run a Windows Service under Azure?), and if the answer is no, I'd love to find a step-by-step guide for converting a Windows Service to something Azure-compatible.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

凉栀 2024-12-17 11:52:03

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

包含相关信息的其他链接:

待"谢繁草 2024-12-17 11:52:03

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

我认为您会更高兴转换为 WorkerRole 应该非常简单。

You can run whatever you want, including a Windows Service.

I think you'd be happier converting to a WorkerRole, though, which should be very straightforward.

痞味浪人 2024-12-17 11:52:03

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

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

WebJobs 很容易运行,但不具备辅助角色的功能。请参阅以下内容进行比较:
辅助角色与 Web 作业

For smaller jobs, you can use Azure's WebJob facility, which runs within a web app (useful if you're doing background tasks on the same data that a front-end site is managing).

There's a nice breakdown here:
https://azure.microsoft.com/en-us/documentation/articles/web-sites-create-web-jobs/

WebJobs are pretty easy to get running, but don't have the power of Worker Roles. See the following for a comparison:
Worker Role vs Web Job

夏日落 2024-12-17 11:52:03

是的,没问题,这是另一个很好且易于遵循的示例 Azure 云服务入门。它(还)清楚地展示了如何实现 WorkerRole。您可以使用 WebRole 来管理您的服务。

Yes, no problem, here is another nice and easy to follow example Get Started with Azure Cloud Services. It (also) clearly shows how to implement the WorkerRole. You can use the WebRole to manage your service.

我恋#小黄人 2024-12-17 11:52:03

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

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

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

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

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

设置用户名=xxx
设置密码=yyy
调用 d:\nssm 安装“我的服务”
“%programfiles%\ PathToService \ myservice.exe”“-p 8677”
d:\nssm 设置“我的服务”ObjectName“%用户名%”“%密码%”
sc 失败“我的服务”操作=重新启动/60000/重新启动/60000/重新启动/60000 重置= 240
d:\nssm 启动“我的服务”

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

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

享受!

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

Here are the steps to install a windows service on Windows Azure running VM with Windows Server 2012 R2:

  • start your VM in Windows Azure Console and connect to it with Remote Desktop Connector
  • map your storage as a new drive in your VM:

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

Storage key can be found in your Azure Management Console -> Storages -> Manage Access Keys

  • copy all the necessary installation files to the mapped storage (copy&paste)
  • copy nssm to a local drive (not z: as it uses MAFS file system and that cannot be accessed with low-level windows API commands)
  • Create a .bat file with the following entries

set username=xxx
set password=yyy
call d:\nssm install "My service"
"%programfiles%\PathToService\myservice.exe" "-p 8677"
d:\nssm set "My service" ObjectName "%username%" "%password%"
sc failure "My service" actions= restart/60000/restart/60000/restart/60000 reset= 240
d:\nssm start "My service"

Username and password should be the ones you used to create the VM.

  • run the script. The service should be visible in your services list.

Enjoy!

PS : I used NSSM to simplify the service deployment.

旧人哭 2024-12-17 11:52:03

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

I would use web jobs for this, it's scheduling functionality and easy deployment/config makes this a trivial task. Zip up your .exe and upload it, then set a schedule and you're done.

一世旳自豪 2024-12-17 11:52:03

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

Yes u can , in the website there are a task web jobs y can create a batch, wsh, powershell(need the azure power shell) or using the web jobs API, rest API, on the other hand we have azure automation is similar but use work flow

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文