0

Windows Azure 是否支持 Windows 服务?,...

我开发了一个应用程序,它的组件中有一个 Windows 服务,每小时都会发送一封包含信息的电子邮件。

这在 Windows Azure 中是否支持?

谢谢!!

4

5 回答 5

2

您可能会发现工作者角色更适合每小时运行一个进程。如果您有 WIndows 服务的代码,那么在工作者角色中实现它应该不难。

但是,您必须使用第 3 方服务来发送电子邮件,因为 Azure 不支持此功能。

问候,

艾伦

于 2012-10-27T06:15:08.557 回答
1

是的,您可以这样做*。为了在 PaaS 辅助角色(或 Web 角色)中安装 Windows 服务,您需要创建一个启动脚本,在启动时安装该服务(并检查是否已在后续启动时安装)。

如果您使用的是 IaaS 虚拟机,那么安装很简单——就像现在一样。

*Windows Azure 网站是共享模型,因此不支持安装服务。

于 2012-10-26T18:10:37.590 回答
0

结合艾伦史密斯和邓里的答案,两者都是正确的 -

您可以使用启动脚本(网站除外)在 PaaS 角色上安装 Windows 服务。如果您使用的是虚拟机,则只需在 VM 上安装服务

但是 Alan 是完全正确的,在大多数情况下,最好的前进路线是将代码迁移到工人角色,这通常是非常直接的,会工作得最好并且更容易维护。

说了这么多——从 Azure 内部发送电子邮件不一定是一个好主意,因为许多邮件服务器将 ips 列入黑名单(事实证明 Azure 是垃圾邮件发送者的绝佳平台)

于 2012-10-27T07:54:34.733 回答
0

我想对 Alan 和 Yossi 的回答做一个额外的补充。知道原因很重要,因为简单地安装 Windows 服务应该不是问题。

但如果你这样做,你会错过一些非常重要的事情。如果您在实际的 Worker Role 进程中运行所有代码,您将免费获得监控。这意味着,如果您的进程因任何原因崩溃,Windows Azure 将重新启动实例以确保进程重新联机。

现在,如果您只是通过启动脚本安装 Windows 服务,您将无法利用此自动监控。您需要确保您有某种恢复(这可能是 Windows 服务上的设置或不同的进程)。但这对于您可以免费获得的东西来说实在是太多了。

于 2012-10-28T19:25:41.870 回答
0

I would suggest using a Extra-Small VM using a windows template that is already offered. It's the same cost as the worker role and will let you provision your service without any issues. You would install your service the same as you would on any on premises server.

If you don't need to have the same sort of failover scenario that your web roles do then this s a good option.

于 2012-10-29T09:48:07.813 回答