diff --git a/src/Orchard.Web/Modules/Orchard.TaskLease/Services/DatabaseLock.cs b/src/Orchard.Web/Modules/Orchard.TaskLease/Services/DatabaseLock.cs index 1b31f6ec4..7e11d1c70 100644 --- a/src/Orchard.Web/Modules/Orchard.TaskLease/Services/DatabaseLock.cs +++ b/src/Orchard.Web/Modules/Orchard.TaskLease/Services/DatabaseLock.cs @@ -35,6 +35,9 @@ namespace Orchard.TaskLease.Services { public ILogger Logger { get; set; } public bool TryAcquire(string name, TimeSpan maxLifetime) { + if(_isDisposed) + throw new ObjectDisposedException("DatabaseLock"); + Argument.ThrowIfNullOrEmpty(name, "name"); if (name.Length > 256) @@ -110,7 +113,7 @@ namespace Orchard.TaskLease.Services { } private ILifetimeScope EnsureLifetimeScope(string name) { - return _scope = _lifetimeScope.BeginLifetimeScope("Orchard.Tasks.Locking.Database." + name); + return _scope ?? (_scope = _lifetimeScope.BeginLifetimeScope("Orchard.Tasks.Locking.Database." + name)); } private void DisposeLifetimeScope() {