如何调试为什么 azure web 作业没有启动?

How to debug why azure web job does not start?

在 Visual Studio 中,我正在通过“发布”菜单选项将网站部署到 Azure,并且项目中添加了一个现有的 Web 作业(通过“添加”菜单)。它是作为连续作业添加的,并且在 'webjob-publish-settings.json' 和 'webjobs-list.json' 文件中具有正确的条目。

当我发布网站时,作业被编译并放置在'jobs'文件夹中并与网站一起发布。但是,它没有启动。 Azure 中的 WebJobs 设置页面不会自动添加任何条目,该页面仍为空。输出中没有错误 window.

Azure webjobs 文档声明它将尝试 运行 从 webjob 目录中选择文件,其中之一是以“.exe”结尾的任何文件。 webjob工程是console工程,编译成exe发布到目录下

过去,我通过压缩 'bin\Release' 目录的内容并手动添加来发布此作业。

如何调试自动部署后无法启动的原因?

您应该做的第一件事是准确查看已部署的内容,以确保它看起来像您期望的那样。为此:

  • 转到Kudu Console
  • 转到D:\home\site\wwwroot\App_Data\jobs\continuous
  • 您应该会在其中看到一个以您的 WebJob 命名的文件夹。进入那个文件夹
  • 检查它是否包含所有正确的文件

如果不是,那么您可能遇到某种部署问题,这不是 WebJobs 运行时的问题。

我认为当您发布网站时,它只是复制了 Webjob 文件,但 Azure 不知道已经发布了 Webjob。您能否尝试通过选择 "Publish as Webjob" 选项单独发布 WebJob。如果以这种方式发布有问题,那么您的 Webjob 中存在一些问题,例如应用程序设置等,如果它成功发布,那么我想您每次都必须单独发布它,或者在网站的发布设置中找到一个 hack 来发布这两个项目。

希望对您有所帮助。谢谢

我有一个工作正常的 Web 作业,我停止了它,更改了配置文件中的值并再次启动它。它没有启动,没有错误,没有日志问题,什么都没有。

我是怎么解决的?我在包含所有 Web 作业的应用服务 中单击了 "Restart" 按钮。

注意:停止和启动不起作用,只有 "Restart" 成功了。这真的没有意义,但这就是发生的事情。我希望它能帮助其他人解决同样的问题。