Azure WebJob 无法启动
Azure WebJob fail to start
我在 Visual Studio 2015 年创建了一个 Azure WebJob 并将其部署到 Azure。
尝试 运行 WebJob 时出现此错误:
[03/12/2017 22:47:46 > 070c62: SYS INFO] Status changed to Running
[03/12/2017 22:47:47 > 070c62: ERR ]
[03/12/2017 22:47:47 > 070c62: ERR ] Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.HostingProcess.Utilities.Sync, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
[03/12/2017 22:47:47 > 070c62: ERR ] at Microsoft.VisualStudio.HostingProcess.EntryPoint.Main()
[03/12/2017 22:47:47 > 070c62: SYS ERR ] Job failed due to exit code -532462766
[03/12/2017 22:47:47 > 070c62: SYS INFO] Process went down, waiting for 60 seconds
[03/12/2017 22:47:47 > 070c62: SYS INFO] Status changed to PendingRestart
我试图搜索此错误,但找不到与此相关的任何内容。我不知道这是我的 WebJob 代码中的问题还是 Azure 中 WebJob 的配置问题。
有没有人对问题所在有一些想法或指示?
[03/12/2017 22:47:47 > 070c62: ERR ] Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.HostingProcess.Utilities.Sync, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
[03/12/2017 22:47:47 > 070c62: ERR ] at Microsoft.VisualStudio.HostingProcess.EntryPoint.Main()
首先,正如 David Ebbo 所说,请尝试 运行 Azure Web App 沙箱之外的相同逻辑,并检查它是否正常工作。
此外,据我所知,如果 WebJobs 项目缺少引用的程序集或文件,我们会遇到与您类似的问题。例如,我的控制台应用程序引用了 Newtonsoft.Json,但当我将控制台应用程序作为 WebJobs 部署到 Azure 时,我没有包含此文件,出现以下错误。
ConsoleApplication13.Program.Main() 是我的控制台应用程序的入口点,请检查您的项目以确保您没有遗漏一些程序集。
我通过稍微改变 Main()
方法解决了同样的问题。
请务必将以下行留在 Main()
.
的顶部
var config = new JobHostConfiguration();
if (config.IsDevelopment)
{
config.UseDevelopmentSettings();
}
config.Queues.BatchSize = 2; //Number of messages to dequeue at the same time.
config.Queues.MaxDequeueCount = 5; //Max retries before move the messate to the poison.
config.Queues.MaxPollingInterval = TimeSpan.FromSeconds(1); //Pooling request to the queue.
config.NameResolver = new QueueNameResolver(); //Dynamic queue name resolver.
JobHost host = new JobHost(config);
然后我把我写的"Console.Writeline()"所有的源码都搜了一遍删掉了,因为我以为是Microsoft.VisualStudio.HostingProcess.Utilities.Syncdll的。
之后我删除了所有在门户中的webApp配置的webjobs并重新发布。
瞧瞧,所有 WebJobs 又 运行 了。
现在我又写了 "console.WriteLine" 并且每个都继续 运行 很好。所以我认为重要的是将 JobHost 配置放在 Main 的最顶部:
var config = new JobHostConfiguration();
if (config.IsDevelopment)
{
config.UseDevelopmentSettings();
}
config.Queues.BatchSize = 2; //Number of messages to dequeue at the same time.
config.Queues.MaxDequeueCount = 5; //Max retries before move the messate to the poison.
config.Queues.MaxPollingInterval = TimeSpan.FromSeconds(1); //Pooling request to the queue.
config.NameResolver = new QueueNameResolver(); //Dynamic queue name resolver.
JobHost host = new JobHost(config);
首先,从 azure 中删除出错的 web 作业。
然后验证解决方案配置是否处于"Release"模式。
最后,再次部署。
PS: 希望 web 作业在本地运行时没有任何错误!
我在 Visual Studio 2015 年创建了一个 Azure WebJob 并将其部署到 Azure。
尝试 运行 WebJob 时出现此错误:
[03/12/2017 22:47:46 > 070c62: SYS INFO] Status changed to Running
[03/12/2017 22:47:47 > 070c62: ERR ]
[03/12/2017 22:47:47 > 070c62: ERR ] Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.HostingProcess.Utilities.Sync, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
[03/12/2017 22:47:47 > 070c62: ERR ] at Microsoft.VisualStudio.HostingProcess.EntryPoint.Main()
[03/12/2017 22:47:47 > 070c62: SYS ERR ] Job failed due to exit code -532462766
[03/12/2017 22:47:47 > 070c62: SYS INFO] Process went down, waiting for 60 seconds
[03/12/2017 22:47:47 > 070c62: SYS INFO] Status changed to PendingRestart
我试图搜索此错误,但找不到与此相关的任何内容。我不知道这是我的 WebJob 代码中的问题还是 Azure 中 WebJob 的配置问题。
有没有人对问题所在有一些想法或指示?
[03/12/2017 22:47:47 > 070c62: ERR ] Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.HostingProcess.Utilities.Sync, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. [03/12/2017 22:47:47 > 070c62: ERR ] at Microsoft.VisualStudio.HostingProcess.EntryPoint.Main()
首先,正如 David Ebbo 所说,请尝试 运行 Azure Web App 沙箱之外的相同逻辑,并检查它是否正常工作。
此外,据我所知,如果 WebJobs 项目缺少引用的程序集或文件,我们会遇到与您类似的问题。例如,我的控制台应用程序引用了 Newtonsoft.Json,但当我将控制台应用程序作为 WebJobs 部署到 Azure 时,我没有包含此文件,出现以下错误。
ConsoleApplication13.Program.Main() 是我的控制台应用程序的入口点,请检查您的项目以确保您没有遗漏一些程序集。
我通过稍微改变 Main()
方法解决了同样的问题。
请务必将以下行留在 Main()
.
var config = new JobHostConfiguration();
if (config.IsDevelopment)
{
config.UseDevelopmentSettings();
}
config.Queues.BatchSize = 2; //Number of messages to dequeue at the same time.
config.Queues.MaxDequeueCount = 5; //Max retries before move the messate to the poison.
config.Queues.MaxPollingInterval = TimeSpan.FromSeconds(1); //Pooling request to the queue.
config.NameResolver = new QueueNameResolver(); //Dynamic queue name resolver.
JobHost host = new JobHost(config);
然后我把我写的"Console.Writeline()"所有的源码都搜了一遍删掉了,因为我以为是Microsoft.VisualStudio.HostingProcess.Utilities.Syncdll的。
之后我删除了所有在门户中的webApp配置的webjobs并重新发布。
瞧瞧,所有 WebJobs 又 运行 了。
现在我又写了 "console.WriteLine" 并且每个都继续 运行 很好。所以我认为重要的是将 JobHost 配置放在 Main 的最顶部:
var config = new JobHostConfiguration();
if (config.IsDevelopment)
{
config.UseDevelopmentSettings();
}
config.Queues.BatchSize = 2; //Number of messages to dequeue at the same time.
config.Queues.MaxDequeueCount = 5; //Max retries before move the messate to the poison.
config.Queues.MaxPollingInterval = TimeSpan.FromSeconds(1); //Pooling request to the queue.
config.NameResolver = new QueueNameResolver(); //Dynamic queue name resolver.
JobHost host = new JobHost(config);
首先,从 azure 中删除出错的 web 作业。
然后验证解决方案配置是否处于"Release"模式。
最后,再次部署。
PS: 希望 web 作业在本地运行时没有任何错误!