将 .NET Windows 服务转换为 Azure Web 作业

use*_*715 4 .net windows-services azure azure-webjobs

我有一个 .NET Windows 服务,想转换为 Azure Web 作业。如果我可以将其托管为 Azure Web 作业或转换建议,请告诉我。

Mik*_*nen 6

遗憾的是,您无法直接在 Azure PaaS 解决方案中托管 Windows 服务,除非它是使用TopShelf构建的。您的选择是:

  1. 使用 Azure 虚拟机托管 Windows 服务
  2. 转换 Windows 服务,以便可以将其托管在 Azure PaaS 中

对于转换,最简单的计划通常如下:

  1. 创建新的 .NET 控制台应用程序
  2. 将所有逻辑从 Windows 服务移至 .NET 控制台应用程序
  3. 使控制台应用程序正常工作,以便一旦运行它,它就会执行逻辑并退出。因此没有 while 循环可以使控制台应用程序永远运行。
  4. 将控制台应用程序发布为 Web 作业。您可以直接从 Visual Studio 发布或使用 Azure 门户上传。
  5. 安排 Web 作业在需要时执行。

如果您的服务使用 TopShelf,您可以跳过转换部分。

如果您的 Windows 服务正在执行其他操作,而不仅仅是执行简单的逻辑,例如它托管 WCF 或 Web Api,那么最简单的选择通常是将其转换为 Web 应用程序。

  • 糟糕,降级到旧版控制台应用程序是一个巨大的倒退。即使是可以通过命中/消耗其端点来触发的 WCF 服务也更加干净。 (2认同)