elsa-workflows / elsa-core

A .NET workflows library
https://v3.elsaworkflows.io/
MIT License
6.49k stars 1.2k forks source link

hit unexpected managed exception, exception code = '0xe0434352'. First 30KB characters of captured stdout and stderr logs: #4460

Open MusabBasheer opened 1 year ago

MusabBasheer commented 1 year ago

Application '/LM/W3SVC/1/ROOT/*' with physical root 'C:\inetpub\wwwroot****\' hit unexpected managed exception, exception code = '0xe0434352'. First 30KB characters of captured stdout and stderr logs: warn: Microsoft.AspNetCore.DataProtection.Repositories.EphemeralXmlRepository[50] Using an in-memory repository. Keys will not be persisted to storage. warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[59] Neither user profile nor HKLM registry available. Using an ephemeral key repository. Protected data will be unavailable when application exits. info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[58] Creating key {d557c887-16b4-43ae-acf0-7d0b8e5b7d57} with creation date 2023-09-19 10:21:41Z, activation date 2023-09-19 10:21:41Z, and expiration date 2023-12-18 10:21:41Z. warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] No XML encryptor configured. Key {d557c887-16b4-43ae-acf0-7d0b8e5b7d57} may be persisted to storage in unencrypted form. info: Elsa.Runtime.StartupRunner[0] Running startup task RunMigrations info: Microsoft.EntityFrameworkCore.Infrastructure[10403] Entity Framework Core 6.0.1 initialized 'ElsaContext' using provider 'Microsoft.EntityFrameworkCore.SqlServer:6.0.1' with options: MaxPoolSize=1024 MigrationsAssembly=Elsa.Persistence.EntityFramework.SqlServer MigrationsHistoryTable=Elsa.EFMigrationsHistory info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (64ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT 1 info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (65ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT OBJECT_ID(N'[Elsa].[__EFMigrationsHistory]'); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT 1 info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT OBJECT_ID(N'[Elsa].[EFMigrationsHistory]'); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (6ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT [MigrationId], [ProductVersion] FROM [Elsa].[__EFMigrationsHistory] ORDER BY [MigrationId]; info: Microsoft.EntityFrameworkCore.Migrations[20405] No migrations were applied. The database is already up to date. info: Elsa.Runtime.StartupRunner[0] Running startup task CreateSubscriptions info: Rebus.Routing.TypeBased.TypeBasedRouter[0] Mapped Elsa.Services.TriggerWorkflowsRequest -> "execute-workflow" info: Rebus.Routing.TypeBased.TypeBasedRouter[0] Mapped Elsa.Services.ExecuteWorkflowDefinitionRequest -> "execute-workflow" info: Rebus.Routing.TypeBased.TypeBasedRouter[0] Mapped Elsa.Services.ExecuteWorkflowInstanceRequest -> "execute-workflow" info: Rebus.Threading.TaskParallelLibrary.TplAsyncTask[0] Starting periodic task "CleanupTrackedErrors" with interval 00:00:10 info: Rebus.Bus.RebusBus[0] Bus "Rebus 1" setting number of workers to 1 info: Rebus.Bus.RebusBus[0] Bus "Rebus 1" started info: Rebus.Routing.TypeBased.TypeBasedRouter[0] Mapped Elsa.Services.ExecuteWorkflowDefinitionRequest -> "execute-workflow-default" info: Rebus.Routing.TypeBased.TypeBasedRouter[0] Mapped Elsa.Services.ExecuteWorkflowInstanceRequest -> "execute-workflow-default" info: Rebus.Threading.TaskParallelLibrary.TplAsyncTask[0] Starting periodic task "CleanupTrackedErrors" with interval 00:00:10 info: Rebus.Bus.RebusBus[0] Bus "Rebus 2" setting number of workers to 1 info: Rebus.Bus.RebusBus[0] Bus "Rebus 2" started info: Rebus.Routing.TypeBased.TypeBasedRouter[0] Mapped Elsa.Events.TriggerIndexingFinished -> "ecsapp0006-workflow-management-events" info: Rebus.Routing.TypeBased.TypeBasedRouter[0] Mapped Elsa.Events.TriggersDeleted -> "ecsapp0006-workflow-management-events" info: Rebus.Routing.TypeBased.TypeBasedRouter[0] Mapped Elsa.Events.BookmarkIndexingFinished -> "ecsapp0006-workflow-management-events" info: Rebus.Routing.TypeBased.TypeBasedRouter[0] Mapped Elsa.Events.BookmarksDeleted -> "ecsapp0006-workflow-management-events" info: Rebus.Threading.TaskParallelLibrary.TplAsyncTask[0] Starting periodic task "CleanupTrackedErrors" with interval 00:00:10 info: Rebus.Bus.RebusBus[0] Bus "Rebus 3" setting number of workers to 1 info: Rebus.Bus.RebusBus[0] Bus "Rebus 3" started info: Elsa.Runtime.StartupRunner[0] Running startup task ContinueRunningWorkflows info: Rebus.Bus.RebusBus[0] Bus "Rebus 1" setting number of workers to 0 info: Rebus.Threading.TaskParallelLibrary.TplAsyncTask[0] Stopping periodic task "CleanupTrackedErrors" info: Rebus.Bus.RebusBus[0] Bus "Rebus 1" stopped info: Rebus.Bus.RebusBus[0] Bus "Rebus 2" setting number of workers to 0 info: Rebus.Threading.TaskParallelLibrary.TplAsyncTask[0] Stopping periodic task "CleanupTrackedErrors" info: Rebus.Bus.RebusBus[0] Bus "Rebus 2" stopped info: Rebus.Bus.RebusBus[0] Bus "Rebus 3" setting number of workers to 0 info: Rebus.Threading.TaskParallelLibrary.TplAsyncTask[0] Stopping periodic task "CleanupTrackedErrors" info: Rebus.Bus.RebusBus[0] Bus "Rebus 3" stopped Unhandled exception. System.UnauthorizedAccessException: Access to the path 'C:\Windows\TEMP\ContinueRunningWorkflows5KC7QDLK4FML23TKRG7J52LIOPKUVFGU.lock' is denied. at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable1 unixCreateMode) at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable1 unixCreateMode) at Medallion.Threading.FileSystem.FileDistributedLock.TryAcquire(CancellationToken cancellationToken) in C:\Users\mikea_000\Documents\Interests\CS\DistributedLock\DistributedLock.FileSystem\FileDistributedLock.cs:line 89 at Medallion.Threading.FileSystem.FileDistributedLock.<>c.<Medallion.Threading.Internal.IInternalDistributedLock.InternalTryAcquireAsync>b__11_0(FileDistributedLock this, CancellationToken token) in C:\Users\mikea_000\Documents\Interests\CS\DistributedLock\DistributedLock.FileSystem\FileDistributedLock.cs:line 65 at Medallion.Threading.Internal.BusyWaitHelper.WaitAsync[TState,TResult](TState state, Func3 tryGetValue, TimeoutValue timeout, TimeoutValue minSleepTime, TimeoutValue maxSleepTime, CancellationToken cancellationToken) in C:\Users\mikea_000\Documents\Interests\CS\DistributedLock\DistributedLock.Core\Internal\BusyWaitHelper.cs:line 29 at Medallion.Threading.Internal.Helpers.Convert[TDerived,TBase](ValueTask1 task, ValueTaskConversion _) in C:\Users\mikea_000\Documents\Interests\CS\DistributedLock\DistributedLock.Core\Internal\Helpers.cs:line 24 at Elsa.Services.Locking.DistributedLockProvider.AcquireLockAsync(String name, Nullable1 timeout, CancellationToken cancellationToken) at Elsa.StartupTasks.ContinueRunningWorkflows.ExecuteAsync(CancellationToken cancellationToken) at Elsa.Runtime.StartupRunner.StartupAsync(CancellationToken cancellationToken) at Elsa.Runtime.StartupRunner.StartupAsync(CancellationToken cancellationToken) at Elsa.HostedServices.StartupRunnerHostedService.StartAsync(CancellationToken cancellationToken) at Microsoft.AspNetCore.Hosting.HostedServiceExecutor.ExecuteAsync(Func2 callback, Boolean throwOnFirstFailure) at Microsoft.AspNetCore.Hosting.WebHost.StartAsync(CancellationToken cancellationToken) at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token, String startupMessage) at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token, String startupMessage) at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token) at Microsoft.AspNetCore.Hosting.WebHostExtensions.Run(IWebHost host) at *.Program.Main(String[] args) in C:\Users****\Program.cs:line 11

sfmskywalker commented 1 year ago
System.UnauthorizedAccessException: Access to the path 'C:\Windows\TEMP\ContinueRunningWorkflows5KC7QDLK4FML23TKRG7J52LIOPKUVFGU.lock' is denied.

By default, Elsa uses the DistributedLock package to acquire distributed locks. It is configured to use a temp file by default, which apparently is failing due to an authorization exception.

Unless this is a transient issue, you’ll have to give your app permissions to access the temp directory, or configure the distributed lock to use a different directory. Alternatively, you could configure it to use SQL Server, Redis, or any other provider it supports. This is especially recommended to do when hosting in a multi node cluster (not sure of this is the case for you).

MusabBasheer commented 1 year ago

It was working properly without any issue and yes, we use it inside multi VMs but this issue is raised suddenly without any change in our implementation. First Log: Application '/LM/W3SVC/1/ROOT/********' with physical root 'C:\inetpub\wwwroot\********\' hit unexpected managed exception, exception code = '0xe0434352'. First 30KB characters of captured stdout and stderr logs: warn: Microsoft.AspNetCore.DataProtection.Repositories.EphemeralXmlRepository[50] Using an in-memory repository. Keys will not be persisted to storage. warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[59] Neither user profile nor HKLM registry available. Using an ephemeral key repository. Protected data will be unavailable when application exits. info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[58] Creating key {d557c887-16b4-43ae-acf0-7d0b8e5b7d57} with creation date 2023-09-19 10:21:41Z, activation date 2023-09-19 10:21:41Z, and expiration date 2023-12-18 10:21:41Z. warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] No XML encryptor configured. Key {d557c887-16b4-43ae-acf0-7d0b8e5b7d57} may be persisted to storage in unencrypted form. info: Elsa.Runtime.StartupRunner[0] Running startup task RunMigrations info: Microsoft.EntityFrameworkCore.Infrastructure[10403] Entity Framework Core 6.0.1 initialized 'ElsaContext' using provider 'Microsoft.EntityFrameworkCore.SqlServer:6.0.1' with options: MaxPoolSize=1024 MigrationsAssembly=Elsa.Persistence.EntityFramework.SqlServer MigrationsHistoryTable=Elsa.__EFMigrationsHistory info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (64ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT 1 info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (65ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT OBJECT_ID(N'[Elsa].[__EFMigrationsHistory]'); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT 1 info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT OBJECT_ID(N'[Elsa].[__EFMigrationsHistory]'); info: Microsoft.EntityFrameworkCore.Database.Command[20101] Executed DbCommand (6ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT [MigrationId], [ProductVersion] FROM [Elsa].[__EFMigrationsHistory] ORDER BY [MigrationId]; info: Microsoft.EntityFrameworkCore.Migrations[20405] No migrations were applied. The database is already up to date. info: Elsa.Runtime.StartupRunner[0] Running startup task CreateSubscriptions info: Rebus.Routing.TypeBased.TypeBasedRouter[0] Mapped Elsa.Services.TriggerWorkflowsRequest -> "execute-workflow" info: Rebus.Routing.TypeBased.TypeBasedRouter[0] Mapped Elsa.Services.ExecuteWorkflowDefinitionRequest -> "execute-workflow" info: Rebus.Routing.TypeBased.TypeBasedRouter[0] Mapped Elsa.Services.ExecuteWorkflowInstanceRequest -> "execute-workflow" info: Rebus.Threading.TaskParallelLibrary.TplAsyncTask[0] Starting periodic task "CleanupTrackedErrors" with interval 00:00:10 info: Rebus.Bus.RebusBus[0] Bus "Rebus 1" setting number of workers to 1 info: Rebus.Bus.RebusBus[0] Bus "Rebus 1" started info: Rebus.Routing.TypeBased.TypeBasedRouter[0] Mapped Elsa.Services.ExecuteWorkflowDefinitionRequest -> "execute-workflow-default" info: Rebus.Routing.TypeBased.TypeBasedRouter[0] Mapped Elsa.Services.ExecuteWorkflowInstanceRequest -> "execute-workflow-default" info: Rebus.Threading.TaskParallelLibrary.TplAsyncTask[0] Starting periodic task "CleanupTrackedErrors" with interval 00:00:10 info: Rebus.Bus.RebusBus[0] Bus "Rebus 2" setting number of workers to 1 info: Rebus.Bus.RebusBus[0] Bus "Rebus 2" started info: Rebus.Routing.TypeBased.TypeBasedRouter[0] Mapped Elsa.Events.TriggerIndexingFinished -> "ecsapp0006-workflow-management-events" info: Rebus.Routing.TypeBased.TypeBasedRouter[0] Mapped Elsa.Events.TriggersDeleted -> "ecsapp0006-workflow-management-events" info: Rebus.Routing.TypeBased.TypeBasedRouter[0] Mapped Elsa.Events.BookmarkIndexingFinished -> "ecsapp0006-workflow-management-events" info: Rebus.Routing.TypeBased.TypeBasedRouter[0] Mapped Elsa.Events.BookmarksDeleted -> "ecsapp0006-workflow-management-events" info: Rebus.Threading.TaskParallelLibrary.TplAsyncTask[0] Starting periodic task "CleanupTrackedErrors" with interval 00:00:10 info: Rebus.Bus.RebusBus[0] Bus "Rebus 3" setting number of workers to 1 info: Rebus.Bus.RebusBus[0] Bus "Rebus 3" started info: Elsa.Runtime.StartupRunner[0] Running startup task ContinueRunningWorkflows info: Rebus.Bus.RebusBus[0] Bus "Rebus 1" setting number of workers to 0 info: Rebus.Threading.TaskParallelLibrary.TplAsyncTask[0] Stopping periodic task "CleanupTrackedErrors" info: Rebus.Bus.RebusBus[0] Bus "Rebus 1" stopped info: Rebus.Bus.RebusBus[0] Bus "Rebus 2" setting number of workers to 0 info: Rebus.Threading.TaskParallelLibrary.TplAsyncTask[0] Stopping periodic task "CleanupTrackedErrors" info: Rebus.Bus.RebusBus[0] Bus "Rebus 2" stopped info: Rebus.Bus.RebusBus[0] Bus "Rebus 3" setting number of workers to 0 info: Rebus.Threading.TaskParallelLibrary.TplAsyncTask[0] Stopping periodic task "CleanupTrackedErrors" info: Rebus.Bus.RebusBus[0] Bus "Rebus 3" stopped Unhandled exception. System.UnauthorizedAccessException: Access to the path 'C:\Windows\TEMP\ContinueRunningWorkflows5KC7QDLK4FML23TKRG7J52LIOPKUVFGU.lock' is denied. at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable1 unixCreateMode) at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable1 unixCreateMode) at Medallion.Threading.FileSystem.FileDistributedLock.TryAcquire(CancellationToken cancellationToken) in C:\Users\mikea_000\Documents\Interests\CS\DistributedLock\DistributedLock.FileSystem\FileDistributedLock.cs:line 89 at Medallion.Threading.FileSystem.FileDistributedLock.<>c.<Medallion.Threading.Internal.IInternalDistributedLock<Medallion.Threading.FileSystem.FileDistributedLockHandle>.InternalTryAcquireAsync>b__11_0(FileDistributedLock this, CancellationToken token) in C:\Users\mikea_000\Documents\Interests\CS\DistributedLock\DistributedLock.FileSystem\FileDistributedLock.cs:line 65 at Medallion.Threading.Internal.BusyWaitHelper.WaitAsync[TState,TResult](TState state, Func3 tryGetValue, TimeoutValue timeout, TimeoutValue minSleepTime, TimeoutValue maxSleepTime, CancellationToken cancellationToken) in C:\Users\mikea000\Documents\Interests\CS\DistributedLock\DistributedLock.Core\Internal\BusyWaitHelper.cs:line 29 at Medallion.Threading.Internal.Helpers.Convert[TDerived,TBase](ValueTask`1 task, ValueTaskConversion ) in C:\Users\mikea_000\Documents\Interests\CS\DistributedLock\DistributedLock.Core\Internal\Helpers.cs:line 24 at Elsa.Services.Locking.DistributedLockProvider.AcquireLockAsync(String name, Nullable1 timeout, CancellationToken cancellationToken) at Elsa.StartupTasks.ContinueRunningWorkflows.ExecuteAsync(CancellationToken cancellationToken) at Elsa.Runtime.StartupRunner.StartupAsync(CancellationToken cancellationToken) at Elsa.Runtime.StartupRunner.StartupAsync(CancellationToken cancellationToken) at Elsa.HostedServices.StartupRunnerHostedService.StartAsync(CancellationToken cancellationToken) at Microsoft.AspNetCore.Hosting.HostedServiceExecutor.ExecuteAsync(Func2 callback, Boolean throwOnFirstFailure) at Microsoft.AspNetCore.Hosting.WebHost.StartAsync(CancellationToken cancellationToken) at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token, String startupMessage) at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token, String startupMessage) at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token) at Microsoft.AspNetCore.Hosting.WebHostExtensions.Run(IWebHost host) at *****.Program.Main(String[] args) in C:\Users****\Program.cs:line 11`

Second Log Application: w3wp.exe CoreCLR Version: 7.0.923.32018 .NET Version: 7.0.9 Description: The process was terminated due to an unhandled exception. Exception Info: System.UnauthorizedAccessException: Access to the path 'C:\Windows\TEMP\ContinueRunningWorkflows5KC7QDLK4FML23TKRG7J52LIOPKUVFGU.lock' is denied. at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable1 unixCreateMode) at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable1 unixCreateMode) at Medallion.Threading.FileSystem.FileDistributedLock.TryAcquire(CancellationToken cancellationToken) in C:\Users\mikea_000\Documents\Interests\CS\DistributedLock\DistributedLock.FileSystem\FileDistributedLock.cs:line 89 at Medallion.Threading.FileSystem.FileDistributedLock.<>c.<Medallion.Threading.Internal.IInternalDistributedLock<Medallion.Threading.FileSystem.FileDistributedLockHandle>.InternalTryAcquireAsync>b__11_0(FileDistributedLock this, CancellationToken token) in C:\Users\mikea_000\Documents\Interests\CS\DistributedLock\DistributedLock.FileSystem\FileDistributedLock.cs:line 65 at Medallion.Threading.Internal.BusyWaitHelper.WaitAsync[TState,TResult](TState state, Func3 tryGetValue, TimeoutValue timeout, TimeoutValue minSleepTime, TimeoutValue maxSleepTime, CancellationToken cancellationToken) in C:\Users\mikea000\Documents\Interests\CS\DistributedLock\DistributedLock.Core\Internal\BusyWaitHelper.cs:line 29 at Medallion.Threading.Internal.Helpers.Convert[TDerived,TBase](ValueTask`1 task, ValueTaskConversion ) in C:\Users\mikea_000\Documents\Interests\CS\DistributedLock\DistributedLock.Core\Internal\Helpers.cs:line 24 at Elsa.Services.Locking.DistributedLockProvider.AcquireLockAsync(String name, Nullable1 timeout, CancellationToken cancellationToken) at Elsa.StartupTasks.ContinueRunningWorkflows.ExecuteAsync(CancellationToken cancellationToken) at Elsa.Runtime.StartupRunner.StartupAsync(CancellationToken cancellationToken) at Elsa.Runtime.StartupRunner.StartupAsync(CancellationToken cancellationToken) at Elsa.HostedServices.StartupRunnerHostedService.StartAsync(CancellationToken cancellationToken) at Microsoft.AspNetCore.Hosting.HostedServiceExecutor.ExecuteAsync(Func2 callback, Boolean throwOnFirstFailure) at Microsoft.AspNetCore.Hosting.WebHost.StartAsync(CancellationToken cancellationToken) at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token, String startupMessage) at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token, String startupMessage) at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token) at Microsoft.AspNetCore.Hosting.WebHostExtensions.Run(IWebHost host) at **.Program.Main(String[] args) in C:\Users\source\repos\PostOffice****\Program.cs:line 11`

sfmskywalker commented 1 year ago

In that case, I would encourage you to use a real shared resource such as Redis or SQL Server to acquire a distributed lock.

Not only will that prevent potential concurrency issues when two or more nodes attempt to run the same workflow instance, it will also work around this file access issue - which is beyond my control, and probably even beyond the control of the DistributedLock project.

MusabBasheer commented 1 year ago

Thank you for your support from where I can configure shared resource to be using SQL Server.

sfmskywalker commented 1 year ago

Here's a small example off the top of my head:

services.AddElsa(elsa =>
{
   elsa.ConfigureDistributedLockProvider(options => options.UseSqlServerLockProvider(dbConnectionString));
}

Make sure to reference the Elsa.DistributedLocking.SqlServer package, which provides the UseSqlServerLockProvider extension method.