我正试图在.NET core 3.1中创建一个webjob项目。我按照以下[指南]进行了操作https:/docs.microsoft.comen-usazureapp-servicewebjobs-sdk-get-started。 除了连接到存储账户,我使用 "UseDevelopmentStorage=true "作为连接字符串,并让存储模拟器运行。
每隔几次构建,我就会收到异常:"Microsoft.WindowsAzure.Storage.StorageException: 'There is already a lease present。". 异常是在以下情况下抛出的
using (host)
{
await host.RunAsync();
}
这种情况并不是每次构建都会发生,除了使用TimerTrigger,我没有使用任何其他的存储功能。
有人知道是什么原因造成的吗?
无论你使用什么触发器,当你运行webjob时,你需要将你的运行日志写入blob存储中。这里你使用本地存储与 UseDevelopmentStorage=true
.
该 租赁球 操作在blob上创建并管理锁,用于写入和删除操作。锁定时间可以是15到60秒,也可以是无限的。在2012-02-12之前的版本中,锁定持续时间为60秒。
由于同时使用blob存储,有可能导致 "已经有一个租约存在 "的问题。