【问题标题】:WebJob "host is not running". How to debug?WebJob“主机未运行”。如何调试?
【发布时间】:2015-11-22 03:30:41
【问题描述】:

Azure 网站 WebJob 在线,没有任何部署错误,并且在 WebJob SCM 控制台上没有可见任何级别的已部署 WebJobs 的错误,但以下情况除外:“主机未运行”和一些模糊信息(见下文)。我可以在 VisualStudio 2015 中本地启动 WebJob,它运行良好,但是我无法将调试器附加到已部署的 WebJob。 “父”MVC 5 网站作为 Azure 网站运行良好,我可以将调试器附加到它的控制器。

在这种情况下,“主机未运行”是什么意思?我如何/在哪里可以最好地查看问题所在?

我在 SCM 控制台中也得到以下内容,但我不确定在哪里运行 csc 命令。另外,我在我的网站配置中打开了详细的应用程序日志记录到表,这可能会提供更多的洞察力。

[08/27/2015 19:49:52 > 62f8a0: SYS ERR ] Job failed due to exit code 1
[08/27/2015 19:49:52 > 62f8a0: SYS INFO] Process went down, waiting for 60 seconds
[08/27/2015 19:49:52 > 62f8a0: SYS INFO] Status changed to PendingRestart
[08/27/2015 19:50:57 > 62f8a0: SYS INFO] Run script 'csc.exe' with script host - 'WindowsScriptHost'
[08/27/2015 19:50:57 > 62f8a0: SYS INFO] Status changed to Running
[08/27/2015 19:50:58 > 62f8a0: INFO] Microsoft (R) Visual C# Compiler version 1.0.0.50618
[08/27/2015 19:50:58 > 62f8a0: INFO] Copyright (C) Microsoft Corporation. All rights reserved.
[08/27/2015 19:50:58 > 62f8a0: INFO] 
[08/27/2015 19:50:58 > 62f8a0: INFO] warning CS2008: No source files specified.
[08/27/2015 19:50:58 > 62f8a0: INFO] error CS1562: Outputs without source must have the /out option specified
[08/27/2015 19:50:58 > 62f8a0: SYS ERR ] Job failed due to exit code 1
[08/27/2015 19:50:58 > 62f8a0: SYS INFO] Process went down, waiting for 60 seconds
[08/27/2015 19:50:58 > 62f8a0: SYS INFO] Status changed to PendingRestart

【问题讨论】:

    标签: azure azure-webjobs


    【解决方案1】:

    似乎已发布的网络作业中包含csc.exe 文件。您可以通过检查来自DebuConsole 的webjob 文件夹D:\home\site\wwwroot\App_Data\jobs\continuous\<jobName> 来验证。

    当运行 webjob 的逻辑试图找到要运行的可执行文件时,它将按字母顺序遍历它们。如果您在 webjob 中需要 csc.exe,但 webjob 实际上位于不同的 exe 中,请包含一个名为 run.cmd 的文件,该文件运行您的 exe。 run.* 将永远优先于任何事情。

    【讨论】:

    • 确实,当我部署时,有一个 roslyn 目录被复制到我的 bin/Debug 中。这是一个新现象,我不知道是什么导致 roslyn(和属性)被放置在那里。我对 Funcions.cs 和 Programs.cs 的构建操作是编译,看起来很正常。而且都是“请勿抄袭”。有什么想法吗?
    • Roslyn 目录在编译时被放在那里。它也存在于父 MVC 的 bin 中,但不在我的其他两个 WebJob 的 bin 中,因此存在包或设置差异。问题是,如何找到它。我在 WebJob 中使用 Microsoft.AspNet.WebApi.Core {5.2.3} 和 .Client,所以我怀疑那里有一些我需要关闭的自托管功能。
    • 这个包中有一个构建规则:Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0(我似乎无法卸载或在包管理器中找到) roslyn\%(RecursiveDir)%(Filename)%(Extension) PreserveNewest 导致为这个(我的 3 个)WebJob 项目进行复制.仍在寻找依赖路径,以便我可以删除它...
    • 好的,大海捞针。包 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 导致 roslyn 被复制到 WebJob bin,从而导致上述问题。我只是卸载打包并没有爆炸。我不知道为什么在我们的案例中安装它。再次感谢。
    • 可能相关,您的网络作业存储可能已损坏。 stackoverflow.com/questions/34402114/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-07
    • 1970-01-01
    • 2018-08-16
    • 2010-11-10
    • 1970-01-01
    • 2018-09-03
    • 2022-09-30
    相关资源
    最近更新 更多