当我在本地运行应用程序时,我无法获取单例锁定问题。我该如何解决?
以下是我的代码
static void Main()
{
JobHostConfiguration config = new`enter code here` JobHostConfiguration();
config.UseTimers();
AutoMapperManager.SetAutomapper();
JobHost host = new JobHost(config);
//Task.Factory.StartNew(() => host.Call(typeof(Functions).GetMethod("GetActionItemPullData")));
config.Tracing.ConsoleLevel = TraceLevel.Verbose;
host.RunAndBlock();
}
此致 有利
答案 0 :(得分:3)
我碰巧将Web作业迁移到新的应用服务中,我遇到了同样的错误。在查看了所有内容后,我发现它是什么:
确保Azure中没有运行Web作业的实例。这意味着,停止Azure中的Web作业。如果您定位到同一个存储帐户,即使是本地副本也不会运行。
停止应用服务并不会停止网络作业。您需要明确停止Web作业。
添加详细的日志记录级别对我帮助很大。
config.Tracing.ConsoleLevel = System.Diagnostics.TraceLevel.Verbose;
答案 1 :(得分:2)
如果您已经将您的webjob发布到Azure,请确保在尝试在本地运行时不会在那里运行。
答案 2 :(得分:1)
您可以将主机 ID 覆盖为默认值以外的其他内容。 此代码片段适用于 WebJobs SDK 的 v3,但 v2 也有类似的设置。如果多人在本地从事同一个项目,此解决方案甚至有效。
builder.ConfigureWebJobs(context =>
{
if (IsLocal)
{
context.UseHostId(Environment.UserName);
}
// other context operations
}