Open Closed

Problem with docker and lepton theme #1376


User avatar
0
tomasz.lewandowski@neuca.pl created
  • ABP Framework version: v4.3.0
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): no
  • Exception message and stack trace:
  • Steps to reproduce the issue:

Hey, I have a problem with docker. When I run docker container with backend and try open hangfire UI I have got 500 error. It looks like I have two problems. First with unauthorize access (401) to the hangfire UI. And second with Leptone css files in docker. Everything other works fine and it's look like a problem with LeptonTheme (I have imported LeptoneTheme to my solution). I don't know why docker don't see lepton files. When I publish app normaly to the folder and host it on iis server I don't have this problem. Do you have any ideas?


5 Answer(s)
  • User Avatar
    0
    tomasz.lewandowski@neuca.pl created

    Stack trace:

    [12:41:09 INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers.ErrorController.Index (Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared)'
    [12:41:09 INF] Route matched with {action = "Index", controller = "Error", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] Index(Int32) on controller Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers.ErrorController (Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared).
    [12:41:09 INF] Executing ViewResult, running view ~/Views/Error/401.cshtml.
    [12:41:10 INF] Bundling __bundles/Lepton.Global.6950AC7DD5ADD16212E404C0053DB75B.css (13 files)
    [12:41:10 INF]   > Minified /libs/abp/core/abp.css (1275 bytes -> 868 bytes)
    [12:41:10 INF]   > Minified /libs/@fortawesome/fontawesome-free/css/all.css (73117 bytes -> 53242 bytes)
    [12:41:10 INF]   > Minified /libs/@fortawesome/fontawesome-free/css/v4-shims.css (41312 bytes -> 33344 bytes)
    [12:41:10 INF]   > Minified /libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css (54850 bytes -> 43189 bytes)
    [12:41:10 INF]   > Minified /libs/datatables.net-bs4/css/dataTables.bootstrap4.css (5994 bytes -> 5379 bytes)
    [12:41:10 INF]   > Minified /libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-styles.css (445 bytes -> 379 bytes)
    [12:41:11 INF] Executed action Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers.ErrorController.Index (Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared) in 1782.3768ms
    [12:41:11 INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers.ErrorController.Index (Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared)'
    [12:41:12 ERR] An unhandled exception has occurred while executing the request.
    Volo.Abp.AbpException: Could not find file '/Themes/Lepton/Global/Styles/lepton1.css'
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundlerBase.GetFileInfo(IBundlerContext context, String file)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundlerBase.GetAndMinifyFileContent(IBundlerContext context, String fileName)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundlerBase.GetFileContentConsideringMinification(IBundlerContext context, String fileName)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundlerBase.Bundle(IBundlerContext context)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundleManager.<>c__DisplayClass16_0.<GetBundleFilesAsync>b__0()
       at System.Collections.Generic.AbpDictionaryExtensions.&lt;&gt;c__DisplayClass7_0`2.<GetOrAdd>b__0(TKey k)
       at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
       at System.Collections.Generic.AbpDictionaryExtensions.GetOrAdd[TKey,TValue](ConcurrentDictionary`2 dictionary, TKey key, Func`1 factory)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundleCache.GetOrAdd(String bundleName, Func`1 factory)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundleManager.GetBundleFilesAsync(BundleConfigurationCollection bundles, String bundleName, IBundler bundler)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundleManager.GetStyleBundleFilesAsync(String bundleName)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers.AbpTagHelperStyleService.GetBundleFilesAsync(String bundleName)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers.AbpTagHelperResourceService.ProcessAsync(ViewContext viewContext, TagHelperContext context, TagHelperOutput output, List`1 bundleItems, String bundleName)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers.AbpBundleTagHelperService`2.ProcessAsync(TagHelperContext context, TagHelperOutput output)
       at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.&lt;RunAsync&gt;g__Awaited|0_0(Task task, TagHelperExecutionContext executionContext, Int32 i, Int32 count)
       at AspNetCore.Themes_Lepton_Layouts_Application_Default.&lt;&gt;c__DisplayClass28_0.&lt;&lt;ExecuteAsync&gt;b__0>d.MoveNext() in /src/modules/Volo.LeptonTheme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton/Themes/Lepton/Layouts/Application/Default.cshtml:line 75
    --- End of stack trace from previous location ---
       at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.SetOutputContentAsync()
       at AspNetCore.Themes_Lepton_Layouts_Application_Default.ExecuteAsync() in /src/modules/Volo.LeptonTheme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton/Themes/Lepton/Layouts/Application/Default.cshtml:line 57
       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, Nullable`1 statusCode)
       at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable`1 statusCode)
       at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ActionContext actionContext, IView view, ViewDataDictionary viewData, ITempDataDictionary tempData, String contentType, Nullable`1 statusCode)
       at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor.ExecuteAsync(ActionContext context, ViewResult result)
       at Microsoft.AspNetCore.Mvc.ViewResult.ExecuteResultAsync(ActionContext context)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|29_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>g__Awaited|27_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_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|19_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.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
       at Volo.Abp.AspNetCore.Uow.AbpUnitOfWorkMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
       at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
    --- End of stack trace from previous location ---
       at Volo.Abp.AspNetCore.ExceptionHandling.AbpExceptionHandlingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
       at Volo.Abp.AspNetCore.ExceptionHandling.AbpExceptionHandlingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
       at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
    --- End of stack trace from previous location ---
       at Volo.Abp.AspNetCore.Auditing.AbpAuditingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
       at Volo.Abp.AspNetCore.Auditing.AbpAuditingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
       at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
    --- End of stack trace from previous location ---
       at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
       at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
       at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
       at IdentityServer4.Hosting.IdentityServerMiddleware.Invoke(HttpContext context, IEndpointRouter router, IUserSession session, IEventService events, IBackChannelLogoutService backChannelLogoutService)
       at IdentityServer4.Hosting.MutualTlsEndpointMiddleware.Invoke(HttpContext context, IAuthenticationSchemeProvider schemes)
       at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
       at IdentityServer4.Hosting.BaseUrlMiddleware.Invoke(HttpContext context)
       at Volo.Abp.AspNetCore.MultiTenancy.MultiTenancyMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
       at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
    --- End of stack trace from previous location ---
       at Microsoft.AspNetCore.Builder.ApplicationBuilderAbpJwtTokenMiddlewareExtension.<>c__DisplayClass0_0.<<UseJwtTokenMiddleware>b__0>d.MoveNext()
    --- End of stack trace from previous location ---
       at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
       at Prometheus.HttpMetrics.HttpRequestDurationMiddleware.Invoke(HttpContext context)
       at Prometheus.HttpMetrics.HttpRequestCountMiddleware.Invoke(HttpContext context)
       at Prometheus.HttpMetrics.HttpInProgressMiddleware.Invoke(HttpContext context)
       at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
    [12:41:12 INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers.ErrorController.Index (Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared)'
    [12:41:12 INF] Route matched with {action = "Index", controller = "Error", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] Index(Int32) on controller Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers.ErrorController (Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared).
    [12:41:12 INF] Executing ViewResult, running view ~/Views/Error/401.cshtml.
    [12:41:13 INF] Bundling __bundles/Lepton.Global.D41D8CD98F00B204E9800998ECF8427E.css (0 files)
    [12:41:13 INF] Bundled __bundles/Lepton.Global.D41D8CD98F00B204E9800998ECF8427E.css (0 bytes)
    [12:41:13 INF] Bundling __bundles/Lepton.Global.5CE7947BED98F834D7E319C394CD479C.js (32 files)
    [12:41:14 INF]   > Minified /libs/abp/core/abp.js (22495 bytes -> 9266 bytes)
    [12:41:14 INF]   > Minified /libs/jquery/jquery.js (271751 bytes -> 87726 bytes)
    [12:41:14 INF]   > Minified /libs/abp/jquery/abp.jquery.js (12788 bytes -> 5599 bytes)
    [12:41:14 INF]   > Minified /libs/jquery-validation/jquery.validate.js (48695 bytes -> 23293 bytes)
    [12:41:14 INF]   > Minified /libs/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js (19366 bytes -> 5604 bytes)
    [12:41:14 INF]   > Minified /libs/select2/js/select2-bootstrap-modal-patch.js (127 bytes -> 59 bytes)
    [12:41:14 INF]   > Minified /libs/datatables.net/js/jquery.dataTables.js (449237 bytes -> 83273 bytes)
    [12:41:14 INF]   > Minified /libs/datatables.net-bs4/js/dataTables.bootstrap4.js (4701 bytes -> 2091 bytes)
    [12:41:14 INF]   > Minified /libs/abp/luxon/abp.luxon.js (1315 bytes -> 606 bytes)
    [12:41:14 INF]   > Minified /libs/timeago/jquery.timeago.js (7404 bytes -> 4107 bytes)
    [12:41:14 INF]   > Minified /libs/abp/aspnetcore-mvc-ui-theme-shared/ui-extensions.js (10288 bytes -> 3026 bytes)
    [12:41:14 INF]   > Minified /libs/abp/aspnetcore-mvc-ui-theme-shared/jquery/jquery-extensions.js (5448 bytes -> 2049 bytes)
    [12:41:14 INF]   > Minified /libs/abp/aspnetcore-mvc-ui-theme-shared/jquery-form/jquery-form-extensions.js (3509 bytes -> 1588 bytes)
    [12:41:14 INF]   > Minified /libs/abp/aspnetcore-mvc-ui-theme-shared/jquery/widget-manager.js (4643 bytes -> 1752 bytes)
    [12:41:14 INF]   > Minified /libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js (8180 bytes -> 3939 bytes)
    [12:41:14 INF]   > Minified /libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/modal-manager.js (6611 bytes -> 1887 bytes)
    [12:41:14 INF]   > Minified /libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js (19705 bytes -> 6222 bytes)
    [12:41:14 INF]   > Minified /libs/abp/aspnetcore-mvc-ui-theme-shared/sweetalert/abp-sweetalert.js (2890 bytes -> 1238 bytes)
    [12:41:14 INF]   > Minified /libs/abp/aspnetcore-mvc-ui-theme-shared/toastr/abp-toastr.js (918 bytes -> 342 bytes)
    [12:41:14 INF]   > Minified /Pages/Abp/MultiTenancy/tenant-switch.js (399 bytes -> 243 bytes)
    [12:41:14 INF] Executed action Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers.ErrorController.Index (Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared) in 1811.172ms
    [12:41:14 INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers.ErrorController.Index (Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared)'
    [12:41:14 ERR] An exception was thrown attempting to execute the error handler.
    Volo.Abp.AbpException: Could not find file '/Pages/Account/LinkUsers/account-link-user-global.js'
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundlerBase.GetFileInfo(IBundlerContext context, String file)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundlerBase.GetAndMinifyFileContent(IBundlerContext context, String fileName)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundlerBase.GetFileContentConsideringMinification(IBundlerContext context, String fileName)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundlerBase.Bundle(IBundlerContext context)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundleManager.&lt;&gt;c__DisplayClass16_0.&lt;GetBundleFilesAsync&gt;b__0()
       at System.Collections.Generic.AbpDictionaryExtensions.&lt;&gt;c__DisplayClass7_0`2.<GetOrAdd>b__0(TKey k)
       at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
       at System.Collections.Generic.AbpDictionaryExtensions.GetOrAdd[TKey,TValue](ConcurrentDictionary`2 dictionary, TKey key, Func`1 factory)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundleCache.GetOrAdd(String bundleName, Func`1 factory)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundleManager.GetBundleFilesAsync(BundleConfigurationCollection bundles, String bundleName, IBundler bundler)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.BundleManager.GetScriptBundleFilesAsync(String bundleName)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers.AbpTagHelperScriptService.GetBundleFilesAsync(String bundleName)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers.AbpTagHelperResourceService.ProcessAsync(ViewContext viewContext, TagHelperContext context, TagHelperOutput output, List`1 bundleItems, String bundleName)
       at Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers.AbpBundleTagHelperService`2.ProcessAsync(TagHelperContext context, TagHelperOutput output)
       at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.&lt;RunAsync&gt;g__Awaited|0_0(Task task, TagHelperExecutionContext executionContext, Int32 i, Int32 count)
       at AspNetCore.Themes_Lepton_Layouts_Application_Default.&lt;&gt;c__DisplayClass28_0.&lt;&lt;ExecuteAsync&gt;b__1>d.MoveNext() in /src/modules/Volo.LeptonTheme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton/Themes/Lepton/Layouts/Application/Default.cshtml:line 122
    
  • User Avatar
    0
    tomasz.lewandowski@neuca.pl created

    Obfuscated Dockerfile:

    FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
    WORKDIR /app
    EXPOSE 80
    EXPOSE 443
    
    FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
    WORKDIR /src
    
    COPY ./*.sln ./NuGet.Config  ./
    
    COPY core/*/*.csproj ./
    RUN for file in $(ls *.csproj); do mkdir -p core/${file%.*}/ && mv $file core/${file%.*}/; done
    
    COPY src/*/*.csproj ./
    RUN for file in $(ls *.csproj); do mkdir -p src/${file%.*}/ && mv $file src/${file%.*}/; done
    
    COPY test/*/*.csproj ./
    RUN for file in $(ls *.csproj); do mkdir -p test/${file%.*}/ && mv $file test/${file%.*}/; done
    
    COPY modules/Volo.Account.Pro/src/*/*.csproj ./
    RUN for file in $(ls *.csproj); do mkdir -p modules/Volo.Account.Pro/src/${file%.*}/ && mv $file modules/Volo.Account.Pro/src/${file%.*}/; done
    COPY modules/Volo.Account.Pro/test/*/*.csproj ./
    RUN for file in $(ls *.csproj); do mkdir -p modules/Volo.Account.Pro/test/${file%.*}/ && mv $file modules/Volo.Account.Pro/test/${file%.*}/; done
    
    COPY modules/Volo.LeptonTheme/src/*/*.csproj ./
    RUN for file in $(ls *.csproj); do mkdir -p modules/Volo.LeptonTheme/src/${file%.*}/ && mv $file modules/Volo.LeptonTheme/src/${file%.*}/; done
    COPY modules/Volo.LeptonTheme/test/*/*.csproj ./
    RUN for file in $(ls *.csproj); do mkdir -p modules/Volo.LeptonTheme/test/${file%.*}/ && mv $file modules/Volo.LeptonTheme/test/${file%.*}/; done
    
    RUN dotnet restore "Neuca.OMS.sln" --configfile "NuGet.Config"
    COPY . .
    
    RUN dotnet build -c Release -o /app/build --no-restore
    RUN dotnet test -c Release --no-restore --logger:trx
    
    WORKDIR "/src/src/Company.App.HttpApi.Host"
    
    FROM build AS publish
    RUN dotnet publish "Company.App.HttpApi.Host.csproj" -c Release -o /app/publish --no-restore
    
    FROM base AS final
    WORKDIR /app
    COPY --from=publish /app/publish .
    ENTRYPOINT ["dotnet", "Company.App.HttpApi.Host.dll"]
    
    
  • User Avatar
    0
    tomasz.lewandowski@neuca.pl created

    Any ideas?

  • User Avatar
    0
    liangshiwei created
    Support Team Fullstack Developer

    Could not find file '/Themes/Lepton/Global/Styles/lepton1.css'

    Hi, Maybe you can try to add this file to your project manually.

    First with unauthorize access (401) to the hangfire UI

    Maybe you added some hangfire auth filter, you should check the code.

  • User Avatar
    0
    ServiceBot created
    Support Team Automatic process manager

    This question has been automatically marked as stale because it has not had recent activity.

Made with ❤️ on ABP v9.1.0-preview. Updated on December 12, 2024, 07:15