I get an error when trying to open a Docs Project
with a FileSystem
document source
Volo.Abp.AbpException: Missing path parameter value for version (version)
at Volo.Abp.Http.Client.ClientProxying.ClientProxyUrlBuilder.ReplacePathVariablesAsync(StringBuilder urlBuilder, ActionApiDescriptionModel action, IReadOnlyDictionary`2 methodArguments, ApiVersionInfo apiVersion)
at Volo.Abp.Http.Client.ClientProxying.ClientProxyUrlBuilder.GenerateUrlWithParametersAsync(ActionApiDescriptionModel action, IReadOnlyDictionary`2 methodArguments, ApiVersionInfo apiVersion)
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.GetUrlWithParametersAsync(ClientProxyRequestContext requestContext, ApiVersionInfo apiVersion)
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.RequestAsync(ClientProxyRequestContext requestContext)
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.RequestAsync[T](ClientProxyRequestContext requestContext)
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1.RequestAsync[T](String methodName, ClientProxyRequestTypeValue arguments)
at Volo.Docs.Projects.DocsProjectClientProxy.GetLanguageListAsync(String shortName, String version)
at Volo.Docs.Pages.Documents.Project.IndexModel.SetLanguageList()
at Volo.Docs.Pages.Documents.Project.IndexModel.SetPageAsync()
at Volo.Docs.Pages.Documents.Project.IndexModel.OnGetAsync()
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.GenericTaskHandlerMethod.Convert[T](Object taskAsObject)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.GenericTaskHandlerMethod.Execute(Object receiver, Object[] arguments)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeHandlerMethodAsync()
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeNextPageFilterAsync()
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Rethrow(PageHandlerExecutedContext context)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeInnerFilterAsync()
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
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 Volo.Abp.AspNetCore.Serilog.AbpSerilogMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
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 Volo.Abp.AspNetCore.Security.Claims.AbpDynamicClaimsMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<<CreateMiddleware>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Volo.Abp.AspNetCore.MultiTenancy.MultiTenancyMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<<CreateMiddleware>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Volo.Abp.AspNetCore.Security.AbpSecurityHeadersMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<<CreateMiddleware>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware.<Invoke>g__AwaitMatch|10_1(EndpointRoutingMiddleware middleware, HttpContext httpContext, Task matchTask)
at Volo.Abp.Studio.Client.AspNetCore.AbpStudioMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Volo.Abp.Studio.Client.AspNetCore.AbpStudioMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Volo.Abp.Studio.Client.AspNetCore.AbpStudioMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
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)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<<CreateMiddleware>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)
As I understand this happens because of the fact that project actually has no versions, so the call to Volo.Docs.Projects.DocsProjectClientProxy.GetLanguageListAsync(String shortName, String version)
fails as no version is passed to this endpoint.
Steps to reproduce:
- Create a new project with the provided
solution info
configuration, - and then import module
Volo.Docs
, install module, installVolo.Docs.Web
package toPayhas.Billing.Web.Public
- configure menu, and add project to the database
Example Projects
| Id | Name | ShortName | Format | DefaultDocumentName | NavigationDocumentName | ParametersDocumentName | MinimumVersion | DocumentStoreType | MainWebsiteUrl | LatestVersionBranchName | ExtraProperties | ConcurrencyStamp | | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | | 3a19c703-4cbc-fee6-4dd3-694aeec0db13 | Management (Technical) | management | md | index | docs-nav.json | docs-params.json | 2.0 | FileSystem | /Documents | null | {"Path":"D:\\dev\\Payhas\\Billing-v2\\docs\\technical\\management"} | 28d64b1dfffb472ebd707a8d1f35a3b3 | | 3a19c703-4cbb-0e40-fd67-6c052e0d9de2 | Internet (Technical) | internet | md | index | docs-nav.json | docs-params.json | 2.0 | FileSystem | /Documents | null | {"Path":"D:\\dev\\Payhas\\Billing-v2\\docs\\technical\\internet"} | 1726fa5c79194a0bb6a8129fad683c2b | | 3a19c703-4ca8-2fe3-3d5d-146a989e60ab | Common (Technical) | common | md | index | docs-nav.json | docs-params.json | 2.0 | FileSystem | /Documents | null | {"Path":"D:\\dev\\Payhas\\Billing-v2\\docs\\technical\\common"} | 91fa0ff35d6b425dae701efd32ed6d87 |
Solution info:
Template: app
Created ABP Studio Version: 0.9.26
Current ABP Studio Version: 0.9.26
Tiered: Yes
Multi-Tenancy: Yes
UI Framework: blazor
Theme: leptonx
Theme Style: system
Theme Menu Placement: side
Run Install Libs: No
Run Bundling: No
Progressive Web App: Yes
Run Progressive Web App Support: Yes
Database Provider: ef
Database Management System: postgresql
Separate Tenant Schema: No
Create Initial Migration: No
Run Db Migrator: No
Mobile Framework: maui
Public Website: Yes
Social Login: Yes
Include Tests: Yes
Kubernetes Configuration: Yes
Distributed Event Bus: none
Use Local References: No
Optional Modules:
- GDPR
- TextTemplateManagement
- LanguageManagement * LanguageManagement
- AuditLogging
- OpenIddictAdmin
Create Command: abp new Payhas.Billing -t app --tiered --ui-framework blazor --mobile maui --database-provider ef --database-management-system postgresql --theme leptonx --skip-migration --skip-migrator --public-website --without-cms-kit --dont-run-install-libs --dont-run-bundling -no-file-management
1 Answer(s)
-
0
Hi,
Thanks for reporting it. We found a problem related to the filesystem in the docs module. The version is retrieved wrong (since there is no versionning in the filesystem)
Here the related changes done in the PR: https://github.com/abpframework/abp/pull/22891
You can apply similar change in your application until we ship it in a release