Activities of "shijo"

from Root Url I have removed /en now this is comming.

`2025-10-30 08:14:41.531 +04:00 [INF] Sending HTTP request GET https://raw.githubusercontent.com/shijo-kg/test-doc/main/en/Index.md 2025-10-30 08:14:41.794 +04:00 [INF] Received HTTP response headers after 259.2459ms - 200 2025-10-30 08:14:41.798 +04:00 [INF] End processing HTTP request after 269.0907ms - 200 2025-10-30 08:14:41.803 +04:00 [WRN] System.IndexOutOfRangeException: Index was outside the bounds of the array. at Volo.Docs.GitHub.Projects.ProjectGithubExtensions.GetGitHubInnerUrl(Project project, String languageCode, String documentName) in C:\GitHub\abp\modules\docs\src\Volo.Docs.Domain\Volo\Docs\GitHub\Projects\ProjectGithubExtensions.cs:line 20 at Volo.Docs.GitHub.Documents.GithubDocumentSource.GetGitHubCommitsOrNull(Project project, String documentName, String languageCode, String version) in C:\GitHub\abp\modules\docs\src\Volo.Docs.Domain\Volo\Docs\GitHub\Documents\GithubDocumentSource.cs:line 210 2025-10-30 08:14:41.808 +04:00 [WRN] Could not retrieved the last update time from Github. 2025-10-30 08:14:41.813 +04:00 [INF] Downloading content from Github (DownloadWebContentAsStringAsync): https://raw.githubusercontent.com/shijo-kg/test-doc/main/en/index.md 2025-10-30 08:14:41.816 +04:00 [INF] Start processing HTTP request GET https://raw.githubusercontent.com/shijo-kg/test-doc/main/en/index.md 2025-10-30 08:14:41.819 +04:00 [INF] Sending HTTP request GET https://raw.githubusercontent.com/shijo-kg/test-doc/main/en/index.md 2025-10-30 08:14:42.033 +04:00 [INF] Received HTTP response headers after 211.5565ms - 404 2025-10-30 08:14:42.037 +04:00 [INF] End processing HTTP request after 221.2275ms - 404 2025-10-30 08:14:42.041 +04:00 [WRN] Response status code does not indicate success: 404 (Not Found).: https://raw.githubusercontent.com/shijo-kg/test-doc/main/en/index.md 2025-10-30 08:14:42.045 +04:00 [INF] AUDIT LOG: [500: GET ] /documents/en/test/latest

  • UserName - UserId : -
  • ClientIpAddress : ::1
  • ExecutionDuration : 545
  • Actions:
    • Volo.Docs.Documents.DocumentAppService.GetDefaultAsync (544 ms.) {"input":{"projectId":"c3c57f83-c689-813d-8193-3a1d45649787","version":null,"languageCode":"en"}}
  • Exceptions:
    • version can not be null, empty or white space! (Parameter 'version') System.ArgumentException: version can not be null, empty or white space! (Parameter 'version') at Volo.Docs.Documents.DocumentAppService.GetSourceDocument(Project project, String documentName, String languageCode, String version, Document oldDocument) in C:\GitHub\abp\modules\docs\src\Volo.Docs.Application\Volo\Docs\Documents\DocumentAppService.cs:line 510 at Volo.Docs.Documents.DocumentAppService.GetDocumentAsync(String documentName, Project project, String languageCode, String version, Document oldDocument) in C:\GitHub\abp\modules\docs\src\Volo.Docs.Application\Volo\Docs\Documents\DocumentAppService.cs:line 422 at Volo.Docs.Documents.DocumentAppService.GetDocumentWithDetailsDtoAsync(Project project, String documentName, String languageCode, String version) in C:\GitHub\abp\modules\docs\src\Volo.Docs.Application\Volo\Docs\Documents\DocumentAppService.cs:line 385 at Volo.Docs.Documents.DocumentAppService.GetDefaultAsync(GetDefaultDocumentInput input) in C:\GitHub\abp\modules\docs\src\Volo.Docs.Application\Volo\Docs\Documents\DocumentAppService.cs:line 91 at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.GlobalFeatures.GlobalFeatureInterceptor.InterceptAsync(IAbpMethodInvocation invocation) in C:\GitHub\abp\framework\src\Volo.Abp.GlobalFeatures\Volo\Abp\GlobalFeatures\GlobalFeatureInterceptor.cs:line 25 at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) in C:\GitHub\abp\framework\src\Volo.Abp.Castle.Core\Volo\Abp\Castle\DynamicProxy\CastleAsyncAbpInterceptorAdapter.cs:line 29 at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Validation.ValidationInterceptor.InterceptAsync(IAbpMethodInvocation invocation) in C:\GitHub\abp\framework\src\Volo.Abp.Validation\Volo\Abp\Validation\ValidationInterceptor.cs:line 19 at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) in C:\GitHub\abp\framework\src\Volo.Abp.Castle.Core\Volo\Abp\Castle\DynamicProxy\CastleAsyncAbpInterceptorAdapter.cs:line 29 at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Auditing.AuditingInterceptor.ProceedByLoggingAsync(IAbpMethodInvocation invocation, AbpAuditingOptions options, IAuditingHelper auditingHelper, IAuditLogScope auditLogScope) in C:\GitHub\abp\framework\src\Volo.Abp.Auditing\Volo\Abp\Auditing\AuditingInterceptor.cs:line 98 at Volo.Abp.Auditing.AuditingInterceptor.ProcessWithNewAuditingScopeAsync(IAbpMethodInvocation invocation, AbpAuditingOptions options, ICurrentUser currentUser, IAuditingManager auditingManager, IAuditingHelper auditingHelper, IUnitOfWorkManager unitOfWorkManager) in C:\GitHub\abp\framework\src\Volo.Abp.Auditing\Volo\Abp\Auditing\AuditingInterceptor.cs:line 130

After changing to Release exception changed, ` 2025-10-30 08:12:09.379 +04:00 [WRN] Response status code does not indicate success: 404 (Not Found).: https://raw.githubusercontent.com/shijo-kg/test-doc/main/en/en/index.md 2025-10-30 08:12:09.397 +04:00 [INF] AUDIT LOG: [403: GET ] /documents/en/test/latest

  • UserName - UserId : -
  • ClientIpAddress : ::1
  • ExecutionDuration : 797
  • Actions:
    • Volo.Docs.Documents.DocumentAppService.GetDefaultAsync (795 ms.) {"input":{"projectId":"c3c57f83-c689-813d-8193-3a1d45649787","version":null,"languageCode":"en"}}
  • Exceptions:
    • Exception of type 'Volo.Docs.DocumentNotFoundException' was thrown. Volo.Docs.DocumentNotFoundException: Exception of type 'Volo.Docs.DocumentNotFoundException' was thrown. at Volo.Docs.Documents.DocumentAppService.GetSourceDocument(Project project, String documentName, String languageCode, String version, Document oldDocument) in C:\GitHub\abp\modules\docs\src\Volo.Docs.Application\Volo\Docs\Documents\DocumentAppService.cs:line 510 at Volo.Docs.Documents.DocumentAppService.GetDocumentAsync(String documentName, Project project, String languageCode, String version, Document oldDocument) in C:\GitHub\abp\modules\docs\src\Volo.Docs.Application\Volo\Docs\Documents\DocumentAppService.cs:line 422 at Volo.Docs.Documents.DocumentAppService.GetDocumentWithDetailsDtoAsync(Project project, String documentName, String languageCode, String version) in C:\GitHub\abp\modules\docs\src\Volo.Docs.Application\Volo\Docs\Documents\DocumentAppService.cs:line 385 at Volo.Docs.Documents.DocumentAppService.GetDefaultAsync(GetDefaultDocumentInput input) in C:\GitHub\abp\modules\docs\src\Volo.Docs.Application\Volo\Docs\Documents\DocumentAppService.cs:line 91 at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.GlobalFeatures.GlobalFeatureInterceptor.InterceptAsync(IAbpMethodInvocation invocation) in C:\GitHub\abp\framework\src\Volo.Abp.GlobalFeatures\Volo\Abp\GlobalFeatures\GlobalFeatureInterceptor.cs:line 25 at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) in C:\GitHub\abp\framework\src\Volo.Abp.Castle.Core\Volo\Abp\Castle\DynamicProxy\CastleAsyncAbpInterceptorAdapter.cs:line 29 at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() at Volo.Abp.Validation.ValidationInterceptor.InterceptAsync(IAbpMethodInvocation invocation) in C:\GitHub\abp\framework\src\Volo.Abp.Validation\Volo\Abp\Validation\ValidationInterceptor.cs:line 19 at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) in C:\GitHub\abp\framework\src\Volo.Abp.Castle.Core\Volo\Abp\Castle\DynamicProxy\CastleAsyncAbpInterceptorAdapter.cs:line 29 at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync() at Volo.Abp.Auditing.AuditingInterceptor.ProceedByLoggingAsync(IAbpMethodInvocation invocation, AbpAuditingOptions options, IAuditingHelper auditingHelper, IAuditLogScope auditLogScope) in C:\GitHub\abp\framework\src\Volo.Abp.Auditing\Volo\Abp\Auditing\AuditingInterceptor.cs:line 98 at Volo.Abp.Auditing.AuditingInterceptor.ProcessWithNewAuditingScopeAsync(IAbpMethodInvocation invocation, AbpAuditingOptions options, ICurrentUser currentUser, IAuditingManager auditingManager, IAuditingHelper auditingHelper, IUnitOfWorkManager unitOfWorkManager) in C:\GitHub\abp\framework\src\Volo.Abp.Auditing\Volo\Abp\Auditing\AuditingInterceptor.cs:line 130

2025-10-30 08:12:09.419 +04:00 [WRN] Exception of type 'Volo.Docs.DocumentNotFoundException' was thrown. 2025-10-30 08:12:09.424 +04:00 [INF] Executed handler method OnGetAsync, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. 2025-10-30 08:12:09.586 +04:00 [INF] Bundling __bundles/Basic.Global.587964C1436FDBEC809E4453EFD481BD.css (13 files)`

I am running the VoloDocs application. After configuring the project, I am getting the following exceptions. I have also attached the project configuration details. Is there anything I’m missing?

  • Exception message and full stack trace: 2025-10-30 07:49:48.574 +04:00 [INF] Request starting HTTP/2 GET https://localhost:5001/documents/en/test/latest - null null 2025-10-30 07:49:48.713 +04:00 [INF] Executing endpoint '/Documents/Project/Index' 2025-10-30 07:49:48.746 +04:00 [INF] Route matched with {page = "/Documents/Project/Index", area = "", action = "", controller = ""}. Executing page /Documents/Project/Index 2025-10-30 07:49:48.751 +04:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy 2025-10-30 07:49:48.939 +04:00 [INF] Executing handler method Volo.Docs.Pages.Documents.Project.IndexModel.OnGetAsync - ModelState is "Valid" 2025-10-30 07:49:49.111 +04:00 [INF] Executed DbCommand (1ms) [Parameters=[@__normalizeShortName_0='?' (Size = 32)], CommandType='"Text"', CommandTimeout='30'] SELECT TOP(1) [d].[Id], [d].[ConcurrencyStamp], [d].[DefaultDocumentName], [d].[DocumentStoreType], [d].[ExtraProperties], [d].[Format], [d].[LatestVersionBranchName], [d].[MainWebsiteUrl], [d].[MinimumVersion], [d].[Name], [d].[NavigationDocumentName], [d].[ParametersDocumentName], [d].[ShortName] FROM [DocsProjects] AS [d] WHERE [d].[ShortName] = @__normalizeShortName_0 2025-10-30 07:49:49.332 +04:00 [INF] Executed DbCommand (1ms) [Parameters=[], CommandType='"Text"', CommandTimeout='30'] SELECT [d].[Id], [d].[ConcurrencyStamp], [d].[DefaultDocumentName], [d].[DocumentStoreType], [d].[ExtraProperties], [d].[Format], [d].[LatestVersionBranchName], [d].[MainWebsiteUrl], [d].[MinimumVersion], [d].[Name], [d].[NavigationDocumentName], [d].[ParametersDocumentName], [d].[ShortName] FROM [DocsProjects] AS [d] 2025-10-30 07:49:49.358 +04:00 [INF] Executed DbCommand (1ms) [Parameters=[@__normalizeShortName_0='?' (Size = 32)], CommandType='"Text"', CommandTimeout='30'] SELECT TOP(1) [d].[Id], [d].[ConcurrencyStamp], [d].[DefaultDocumentName], [d].[DocumentStoreType], [d].[ExtraProperties], [d].[Format], [d].[LatestVersionBranchName], [d].[MainWebsiteUrl], [d].[MinimumVersion], [d].[Name], [d].[NavigationDocumentName], [d].[ParametersDocumentName], [d].[ShortName] FROM [DocsProjects] AS [d] WHERE [d].[ShortName] = @__normalizeShortName_0 2025-10-30 07:49:49.976 +04:00 [INF] AUDIT LOG: [500: GET ] /documents/en/test/latest
  • UserName - UserId : -
  • ClientIpAddress : ::1
  • ExecutionDuration : 583
  • Actions:
    • Volo.Docs.Projects.ProjectAppService.GetVersionsAsync (566 ms.) {"shortName":"test"}
  • Exceptions:
    • 'main.0.0' is not a valid version string. (Parameter 'value') System.ArgumentException: 'main.0.0' is not a valid version string. (Parameter 'value') at NuGet.Versioning.SemanticVersion.Parse(String value) at Volo.Docs.GitHub.Documents.Version.SemanticVersionHelper.<>c.<OrderByDescending>b__2_0(VersionInfo v) in C:\GitHub\abp\modules\docs\src\Volo.Docs.Domain.Shared\Volo\Docs\Documents\Version\SemanticVersionHelper.cs:line 25 at System.Linq.Enumerable.EnumerableSorter2.ComputeKeys(TElement[] elements, Int32 count) at System.Linq.Enumerable.EnumerableSorter1.ComputeMap(TElement[] elements, Int32 count) at System.Linq.Enumerable.EnumerableSorter1.Sort(TElement[] elements, Int32 count) at System.Linq.Enumerable.OrderedIterator1.Fill(TElement[] buffer, Span1 destination) at System.Linq.Enumerable.OrderedIterator1.ToList() at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source) at Volo.Docs.GitHub.Documents.Version.SemanticVersionHelper.OrderByDescending(List1 versions) in C:\GitHub\abp\modules\docs\src\Volo.Docs.Domain.Shared\Volo\Docs\Documents\Version\SemanticVersionHelper.cs:line 25 at Volo.Docs.GitHub.Documents.GithubDocumentSource.GetVersionsAsync(Project project) in C:\GitHub\abp\modules\docs\src\Volo.Docs.Domain\Volo\Docs\GitHub\Documents\GithubDocumentSource.cs:line 291 at Volo.Docs.Projects.ProjectAppService.GetVersionsAsync(Project project) in C:\GitHub\abp\modules\docs\src\Volo.Docs.Application\Volo\Docs\Projects\ProjectAppService.cs:line 80 at Volo.Abp.Caching.DistributedCache2.GetOrAddAsync(TCacheKey key, Func1 factory, Func1 optionsFactory, Nullable1 hideErrors, Boolean considerUow, CancellationToken token) in C:\GitHub\abp\framework\src\Volo.Abp.Caching\Volo\Abp\Caching\DistributedCache.cs:line 600 at Volo.Docs.Projects.ProjectAppService.GetVersionsAsync(String shortName) in C:\GitHub\abp\modules\docs\src\Volo.Docs.Application\Volo\Docs\Projects\ProjectAppService.cs:line 61 at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() in C:\GitHub\abp\framework\src\Volo.Abp.Castle.Core\Volo\Abp\Castle\DynamicProxy\CastleAbpMethodInvocationAdapterWithReturnValue.cs:line 24 at Volo.Abp.GlobalFeatures.GlobalFeatureInterceptor.InterceptAsync(IAbpMethodInvocation invocation) in C:\GitHub\abp\framework\src\Volo.Abp.GlobalFeatures\Volo\Abp\GlobalFeatures\GlobalFeatureInterceptor.cs:line 25 at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) in C:\GitHub\abp\framework\src\Volo.Abp.Castle.Core\Volo\Abp\Castle\DynamicProxy\CastleAsyncAbpInterceptorAdapter.cs:line 29 at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() in C:\GitHub\abp\framework\src\Volo.Abp.Castle.Core\Volo\Abp\Castle\DynamicProxy\CastleAbpMethodInvocationAdapterWithReturnValue.cs:line 24 at Volo.Abp.Validation.ValidationInterceptor.InterceptAsync(IAbpMethodInvocation invocation) in C:\GitHub\abp\framework\src\Volo.Abp.Validation\Volo\Abp\Validation\ValidationInterceptor.cs:line 19 at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) in C:\GitHub\abp\framework\src\Volo.Abp.Castle.Core\Volo\Abp\Castle\DynamicProxy\CastleAsyncAbpInterceptorAdapter.cs:line 29 at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync() in C:\GitHub\abp\framework\src\Volo.Abp.Castle.Core\Volo\Abp\Castle\DynamicProxy\CastleAbpMethodInvocationAdapterWithReturnValue.cs:line 24 at Volo.Abp.Auditing.AuditingInterceptor.ProceedByLoggingAsync(IAbpMethodInvocation invocation, AbpAuditingOptions options, IAuditingHelper auditingHelper, IAuditLogScope auditLogScope) in C:\GitHub\abp\framework\src\Volo.Abp.Auditing\Volo\Abp\Auditing\AuditingInterceptor.cs:line 98 at Volo.Abp.Auditing.AuditingInterceptor.ProcessWithNewAuditingScopeAsync(IAbpMethodInvocation invocation, AbpAuditingOptions options, ICurrentUser currentUser, IAuditingManager auditingManager, IAuditingHelper auditingHelper, IUnitOfWorkManager unitOfWorkManager) in C:\GitHub\abp\framework\src\Volo.Abp.Auditing\Volo\Abp\Auditing\AuditingInterceptor.cs:line 130

Working now Thanks.

Now this error is comming, toaster is missing.. Volo.Abp.AbpException: Could not find file '/libs/toastr/toastr.min.css' at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundlerBase.GetFileInfo(IBundlerContext context, String file) in C:\GitHub\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bundling\Volo\Abp\AspNetCore\Mvc\UI\Bundling\BundlerBase.cs:line 130

I tried to run this command getting [08:54:26 ERR] No project found in the directory.

  • Exception message and full stack trace:
  • Steps to reproduce the issue:
    • Download the ZIP
    • Unzip, Host and Run
    • Missing Lib folder exception, Volo.Abp.AbpException: Could not find file '/libs/prismjs/themes/prism-okaidia.css' at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundlerBase.GetFileInfo(IBundlerContext context, String file) in C:\GitHub\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bundling\Volo\Abp\AspNetCore\Mvc\UI\Bundling\BundlerBase.cs:line 130 at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundlerBase.GetAndMinifyFileContent(IBundlerContext context, String fileName) in C:\GitHub\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bundling\Volo\Abp\AspNetCore\Mvc\UI\Bundling\BundlerBase.cs:line 99 at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundlerBase.GetFileContentConsideringMinification(IBundlerContext context, String fileName) in C:\GitHub\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bundling\Volo\Abp\AspNetCore\Mvc\UI\Bundling\BundlerBase.cs:line 94 at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundlerBase.Bundle(IBundlerContext context) in C:\GitHub\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bundling\Volo\Abp\AspNetCore\Mvc\UI\Bundling\BundlerBase.cs:line 46 at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundleManager.<>c__DisplayClass17_0.<AddToBundleCache>b__0() in C:\GitHub\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bundling\Volo\Abp\AspNetCore\Mvc\UI\Bundling\BundleManager.cs:line 125 at System.Collections.Generic.AbpDictionaryExtensions.<>c__DisplayClass7_02.<GetOrAdd>b__0(TKey k) in C:\GitHub\abp\framework\src\Volo.Abp.Core\System\Collections\Generic\AbpDictionaryExtensions.cs:line 130 at System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey key, Func2 valueFactory) at System.Collections.Generic.AbpDictionaryExtensions.GetOrAdd[TKey,TValue](ConcurrentDictionary2 dictionary, TKey key, Func1 factory) in C:\GitHub\abp\framework\src\Volo.Abp.Core\System\Collections\Generic\AbpDictionaryExtensions.cs:line 130 at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundleCache.GetOrAdd(String bundleName, Func1 factory) in C:\GitHub\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bundling\Volo\Abp\AspNetCore\Mvc\UI\Bundling\BundleCache.cs:line 19 at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundleManager.AddToBundleCache(String bundleName, IBundler bundler, List1 bundleFiles) in C:\GitHub\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bundling\Volo\Abp\AspNetCore\Mvc\UI\Bundling\BundleManager.cs:line 114 at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundleManager.GetBundleFilesAsync(BundleConfigurationCollection bundles, String bundleName, IBundler bundler) in C:\GitHub\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bundling\Volo\Abp\AspNetCore\Mvc\UI\Bundling\BundleManager.cs:line 100 at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundleManager.GetStyleBundleFilesAsync(String bundleName) in C:\GitHub\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bundling\Volo\Abp\AspNetCore\Mvc\UI\Bundling\BundleManager.cs:line 60 at Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers.AbpTagHelperStyleService.GetBundleFilesAsync(String bundleName) in C:\GitHub\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bundling\Volo\Abp\AspNetCore\Mvc\UI\Bundling\TagHelpers\AbpTagHelperStyleService.cs:line 42 at Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers.AbpTagHelperResourceService.ProcessAsync(ViewContext viewContext, TagHelper tagHelper, TagHelperContext context, TagHelperOutput output, List1 bundleItems, String bundleName) in C:\GitHub\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bundling\Volo\Abp\AspNetCore\Mvc\UI\Bundling\TagHelpers\AbpTagHelperResourceService.cs:line 60 at Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers.AbpBundleTagHelperService2.ProcessAsync(TagHelperContext context, TagHelperOutput output) in C:\GitHub\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bundling\Volo\Abp\AspNetCore\Mvc\UI\Bundling\TagHelpers\AbpBundleTagHelperService.cs:line 21 at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.<RunAsync>g__Awaited|0_0(Task task, TagHelperExecutionContext executionContext, Int32 i, Int32 count) at AspNetCoreGeneratedDocument.Pages_Documents_Project_Index.<ExecuteAsync>b__40_0() at Microsoft.AspNetCore.Mvc.Razor.RazorPage.RenderSectionAsyncCore(String sectionName, Boolean required) at AspNetCoreGeneratedDocument.Themes_Basic_Layouts_Empty.<>c__DisplayClass15_0.<<ExecuteAsync>b__0>d.MoveNext() in C:\GitHub\abp\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Themes\Basic\Layouts\Empty.cshtml:line 43 --- End of stack trace from previous location --- at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.SetOutputContentAsync() at AspNetCoreGeneratedDocument.Themes_Basic_Layouts_Empty.ExecuteAsync() in C:\GitHub\abp\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Themes\Basic\Layouts\Empty.cshtml:line 29 at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(IRazorPage page, ViewContext context) at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageAsync(IRazorPage page, ViewContext context, Boolean invokeViewStarts) at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderLayoutAsync(ViewContext context, ViewBufferTextWriter bodyWriter) at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(ViewContext context) at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable1 statusCode) at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable1 statusCode) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|30_0[TFilter,TFilterAsync](ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker) at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|7_0(Endpoint endpoint, Task requestTask, ILogger logger) at Microsoft.AspNetCore.Diagnostics.StatusCodePagesMiddleware.Invoke(HttpContext context) at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext) at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider) at Volo.Abp.AspNetCore.Security.AbpSecurityHeadersMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in C:\GitHub\abp\framework\src\Volo.Abp.AspNetCore\Volo\Abp\AspNetCore\Security\AbpSecurityHeadersMiddleware.cs:line 53 at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<<CreateMiddleware>b__0>d.MoveNext() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.RequestLocalization.AbpRequestLocalizationMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in C:\GitHub\abp\framework\src\Volo.Abp.AspNetCore\Microsoft\AspNetCore\RequestLocalization\AbpRequestLocalizationMiddleware.cs:line 54 at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<<CreateMiddleware>b__0>d.MoveNext() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Volo.Abp.AspNetCore.Mvc.Libs.AbpMvcLibsService.<CheckLibs>b__1_0(HttpContext httpContext, RequestDelegate next) in C:\GitHub\abp\framework\src\Volo.Abp.AspNetCore.Mvc\Volo\Abp\AspNetCore\Mvc\Libs\AbpMvcLibsService.cs:line 44 at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication1 application)

Hi, Below is a sample code snippet. The 'userImportedData' table contains master data with user information, such as username, password, etc. Within this distributed event method, we run a loop through this data, performing data validation and creating identity users if the validation is successful. However, during this process, the 'UserImportData' table is completely locked, preventing any records from being read until the loop completes.

 public virtual async Task HandleEventAsync(APIUserImportEto eventData)
 {
     using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true, isolationLevel: System.Data.IsolationLevel.ReadUncommitted))
     {
         try
         {

             using (_currentTenant.Change(eventData.TenantId))
             {
                 var newPrincipal = new ClaimsPrincipal(
                                     new ClaimsIdentity(
                                         new Claim[]
                                         {
                                             new Claim(AbpClaimTypes.UserId, eventData.CreatorId.ToString()),
                                             new Claim(AbpClaimTypes.TenantId, eventData.TenantId.ToString()),
                                             new Claim(AbpClaimTypes.UserName, "admin")
                                         }
                                     )
                                  );
                 using (_currentPrincipalAccessor.Change(newPrincipal))
                 {
                     var userImport = (await _userImportRepository.GetQueryableAsync()).Where(x => x.Id == eventData.UserImportId).FirstOrDefault();
                     if (userImport != null)
                     {
                         userImport.Status = UserImportStatus.InProgress;
                         await _userImportRepository.UpdateAsync(userImport, true);
                         await _msgHubContext.Clients.User(eventData.CreatorId.ToString())
                             .SendAsync("UserImportInProgressMessage", userImport.Id);

                         SetIdentityOptions();
                         bool isAnyError = false;
                         var userImportedData = (await _userImportDataRepository.GetQueryableAsync()).Where(x => x.UserImportId == eventData.UserImportId).ToList();
                         foreach (var importData in userImportedData)
                         {
                             importData.Status = UserImportStatus.InProgress;
                             await _userImportDataRepository.UpdateAsync(importData, true);
                             await _msgHubContext.Clients.User(eventData.CreatorId.ToString())
                                 .SendAsync("UserImportDataInProgressMessage", userImport.Id);
                             try
                             {
                                 List<string> lsrErrors = new List<string>();
                                 if (string.IsNullOrWhiteSpace(importData.UserName))
                                 {
                                     lsrErrors.Add("User Name is empty");
                                 }
                                 if (string.IsNullOrWhiteSpace(importData.Name))
                                 {
                                     lsrErrors.Add("Name is empty");
                                 }

                                 if (!string.IsNullOrWhiteSpace(importData.Name) && importData.Name.Length > 64)
                                 {
                                     importData.Name = importData.Name.Substring(0, 63);
                                 }

                                 if (!string.IsNullOrWhiteSpace(importData.SurName) && importData.SurName.Length > 64)
                                 {
                                     importData.SurName = importData.SurName.Substring(0, 63);
                                 }

                                 if (string.IsNullOrWhiteSpace(importData.Password))
                                 {
                                     lsrErrors.Add("Password is empty");
                                 }
                                 else if (importData.Password.Trim().Length < UserImportDataConsts.PasswordMinLength || importData.Password.Trim().Length > UserImportDataConsts.PasswordMaxLength)
                                 {
                                     lsrErrors.Add("Password length is invalid (Max 20 Character allowed)");
                                 }
                                 if (lsrErrors.Count == 0)
                                 {

                                     var userRole = (await _identityRoleRepository.GetListAsync()).Where(x => x.Name == "user").FirstOrDefault();
                                     if (userRole == null)
                                     {
                                         userRole = new Volo.Abp.Identity.IdentityRole(_guidGenerator.Create(), "user", eventData.TenantId);
                                         await _identityRoleRepository.InsertAsync(userRole, true);
                                     }
                                     var identityUser = new Volo.Abp.Identity.IdentityUser(_guidGenerator.Create(), importData.UserName, importData.UserName, eventData.TenantId);
                                     if (identityUser != null)
                                     {
                                         identityUser.AddRole(userRole.Id);
                                     }
                                     identityUser.Name = importData.Name;
                                     identityUser.Surname = importData.SurName;
                                     var createdUser = await _identityUserManager.CreateAsync(identityUser, importData.Password, false);
                                     createdUser.CheckErrors();

                                     if (!string.IsNullOrEmpty(roles))
                                     {
                                         var rolesIds = roles.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                                         foreach (var roleId in rolesIds)
                                         {
                                             await _userRoleMappingRepository.InsertAsync(new UserRoleMapping(_guidGenerator.Create(), identityUser.Id, roleId, "", ""), true);
                                         }
                                     }

                                     if (!string.IsNullOrEmpty(grades))
                                     {
                                         var gradesIds = grades.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                                         foreach (var gradeId in gradesIds)
                                         {
                                             await _userGradeMappingRepository.InsertAsync(new UserGradeMapping(_guidGenerator.Create(), identityUser.Id, gradeId, gradeId, "", ""), true);
                                         }
                                     }

                                     if (!string.IsNullOrEmpty(subjects))
                                     {
                                         var subjectsIds = subjects.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                                         foreach (var subjectId in subjectsIds)
                                         {
                                             await _userSubjectMappingRepository.InsertAsync(new UserSubjectMapping(_guidGenerator.Create(), identityUser.Id, subjectId, "", ""), true);
                                         }
                                     }

                                     importData.Status = UserImportStatus.Success;
                                     await _userImportDataRepository.UpdateAsync(importData, true);

                                     await _msgHubContext.Clients.User(eventData.CreatorId.ToString())
                                     .SendAsync("UserImportDataSuccessMessage", importData.Id);
                                 }
                                 else
                                 {
                                     throw new UserFriendlyException(String.Join(",", lsrErrors.ToArray()));
                                 }
                             }
                             catch (UserFriendlyException ex)
                             {
                                 _logger.LogException(ex);
                                 isAnyError = true;
                                 importData.Status = UserImportStatus.Failed;
                                 importData.StatusDetails = ex.Message;
                                 await _userImportDataRepository.UpdateAsync(importData, true);
                                 await _msgHubContext.Clients.User(eventData.CreatorId.ToString())
                                  .SendAsync("UserImportDataFailedMessage", importData.Id, ex.Message);
                             }
                             catch (Exception ex)
                             {
                                 string excpetionMessage = ex.Message;
                                 if (excpetionMessage.Length > 100) excpetionMessage = excpetionMessage.Substring(0, 100);
                                 _logger.LogException(ex);
                                 isAnyError = true;
                                 importData.Status = UserImportStatus.Failed;
                                 importData.StatusDetails = excpetionMessage;
                                 await _userImportDataRepository.UpdateAsync(importData, true);
                                 await _msgHubContext.Clients.User(eventData.CreatorId.ToString())
                                  .SendAsync("UserImportDataFailedMessage", importData.Id, ex.Message);
                             }
                             finally
                             {
                                 await _msgHubContext.Clients.User(eventData.CreatorId.ToString())
                                         .SendAsync("UserImportInProgressMessage", userImport.Id);
                             }

                         }
                         if (isAnyError)
                         {
                             userImport.Status = UserImportStatus.Failed;
                             await _userImportRepository.UpdateAsync(userImport, true);
                             await _msgHubContext.Clients.User(eventData.CreatorId.ToString())
                                 .SendAsync("UserImportFailedMessage", userImport.Id);
                         }
                         else
                         {
                             userImport.Status = UserImportStatus.Success;
                             await _userImportRepository.UpdateAsync(userImport, true);
                             await _msgHubContext.Clients.User(eventData.CreatorId.ToString())
                                 .SendAsync("UserImportSuccessMessage", userImport.Id);
                         }
                     }
                 }
             }

         }
         catch (Exception exp)
         {
             try
             {
                 _logger.LogException(exp);
             }
             catch { }
         }

         await uow.CompleteAsync();
     }
 }

 private void SetIdentityOptions()
 {
     _identityUserManager.Options.User.RequireUniqueEmail = true;
     _identityUserManager.Options.User.AllowedUserNameCharacters = $"{_identityUserManager.Options.User.AllowedUserNameCharacters}"; // add special characters here!
     _identityUserManager.Options.Password.RequireDigit = false;
     _identityUserManager.Options.Password.RequireUppercase = false;
     _identityUserManager.Options.Password.RequireNonAlphanumeric = false;
     _identityUserManager.Options.Password.RequireLowercase = false;
     _identityUserManager.Options.Password.RequiredLength = 1;
 }

UserImportData GetAPI Code,

public virtual async Task<PagedResultDto<UserImportDto>> GetListAsync(GetUserImportsInput input)
{
        var totalCount = await _userImportRepository.GetCountAsync(input.FilterText, input.FileDescriptorId, input.Status);
        var items = await _userImportRepository.GetListAsync(input.FilterText, input.FileDescriptorId, input.Status, input.Sorting, input.MaxResultCount, input.SkipCount);

        return new PagedResultDto<UserImportDto>
        {
            TotalCount = totalCount,
            Items = ObjectMapper.Map<List<UserImport>, List<UserImportDto>>(items)
        };
    }
}

hi

I'm not sure. You can check the https://learn.microsoft.com/en-us/dotnet/api/system.data.isolationlevel?view=net-8.0

We've encountered this issue in multiple places, such as during the functionality to import users from Excel data. While looping and inserting users, the user table is completely locked, loading the users listing API stuck. There have added this code, but still unable to list users while doing this job. Even when querying from SQL, it doesn't give me results unless **with(nolock) ** is added

  public virtual async Task HandleEventAsync(APIUserImportEto eventData)
  {
      using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true, isolationLevel: System.Data.IsolationLevel.ReadUncommitted))
      {
        foreach (var importData in userImportedData)
          {
                  // Logic to insert users
          }
        }
    
    }

hi

You can use _unitOfWorkManager to begin a new uow in the HandleEventAsync method, and set the isolationLevel if necessary.

Hi, As I can see in the documentation, the default isolation level is ReadUncommitted, so why is this locking the table for reading?

Showing 11 to 20 of 126 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.1.0-preview. Updated on December 15, 2025, 06:08
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.