如何让果园 cms 在 AspNetCore 中以 swagger 的方式运行?

问题描述

我不能让果园 cms 用 swagger 运行,因为似乎果园不遵循 swagger 路线政策。

我收到以下异常:

The request matched multiple endpoints. Matches: \r\n\r\norchardcore.Contents.Controllers.AdminController.List (orchardcore.Contents)\r\norchardcore.Email.Controllers.AdminController.Index (orchardcore.Email)\r\norchardcore.Apis.GraphQL.Controllers.AdminController.Index (orchardcore.Apis.GraphQL)\r\norchardcore.Sitemaps.Controllers.AdminController.Edit (orchardcore.Sitemaps)\r\norchardcore.Contents.Controllers.AdminController.Edit 

它来自:

Microsoft.AspNetCore.Routing.Matching.DefaultEndpointSelector.ReportAmbiguity(CandidateState[] candidateState)\r\n   at Microsoft.AspNetCore.Routing.Matching.DefaultEndpointSelector.ProcessFinalCandidates(HttpContext httpContext,CandidateState[] candidateState)\r\n   at Microsoft.AspNetCore.Routing.Matching.DefaultEndpointSelector.Select(HttpContext httpContext,CandidateState[] candidateState)\r\n   at Microsoft.AspNetCore.Routing.Matching.DefaultEndpointSelector.SelectAsync(HttpContext httpContext,CandidateSet candidateSet)\r\n

和完整的堆栈跟踪:

{"type":"https://tools.ietf.org/html/rfc7231#section-6.6.1","title":"The request matched multiple endpoints. Matches: \r\n\r\norchardcore.Contents.Controllers.AdminController.List (orchardcore.Contents)\r\norchardcore.Email.Controllers.AdminController.Index (orchardcore.Email)\r\norchardcore.Apis.GraphQL.Controllers.AdminController.Index (orchardcore.Apis.GraphQL)\r\norchardcore.Sitemaps.Controllers.AdminController.Edit (orchardcore.Sitemaps)\r\norchardcore.Contents.Controllers.AdminController.Edit (orchardcore.Contents)\r\norchardcore.Media.Controllers.AdminController.GetMediaItem (orchardcore.Media)\r\norchardcore.Taxonomies.Controllers.AdminController.Edit (orchardcore.Taxonomies)\r\norchardcore.Taxonomies.Controllers.AdminController.Create (orchardcore.Taxonomies)\r\norchardcore.ContentTypes.Controllers.AdminController.EditField (orchardcore.ContentTypes)\r\norchardcore.ContentTypes.Controllers.AdminController.EditTypePart (orchardcore.ContentTypes)\r\norchardcore.Users.Controllers.AdminController.EditPassword (orchardcore.Users)\r\norchardcore.Users.Controllers.AdminController.Edit (orchardcore.Users)\r\norchardcore.Users.Controllers.AdminController.Create (orchardcore.Users)\r\norchardcore.Contents.Controllers.AdminController.display (orchardcore.Contents)\r\norchardcore.Contents.Controllers.AdminController.Create (orchardcore.Contents)\r\norchardcore.ContentTypes.Controllers.AdminController.AddReusablePartTo (orchardcore.ContentTypes)\r\norchardcore.ContentTypes.Controllers.AdminController.List (orchardcore.ContentTypes)\r\norchardcore.ContentTypes.Controllers.AdminController.Create (orchardcore.ContentTypes)\r\norchardcore.Tenants.Controllers.AdminController.Index (orchardcore.Tenants)\r\norchardcore.ContentTypes.Controllers.AdminController.Edit (orchardcore.ContentTypes)\r\norchardcore.ContentTypes.Controllers.AdminController.AddPartsTo (orchardcore.ContentTypes)\r\norchardcore.Tenants.Controllers.AdminController.Create (orchardcore.Tenants)\r\norchardcore.ContentTypes.Controllers.AdminController.ListParts (orchardcore.ContentTypes)\r\norchardcore.ContentTypes.Controllers.AdminController.CreatePart (orchardcore.ContentTypes)\r\norchardcore.ContentTypes.Controllers.AdminController.EditPart (orchardcore.ContentTypes)\r\norchardcore.ContentTypes.Controllers.AdminController.AddFieldTo (orchardcore.ContentTypes)\r\norchardcore.Tenants.Controllers.AdminController.Edit (orchardcore.Tenants)\r\norchardcore.Sitemaps.Controllers.AdminController.display (orchardcore.Sitemaps)\r\norchardcore.Admin.Controllers.AdminController.Index (orchardcore.Admin)\r\norchardcore.Themes.Controllers.AdminController.Index (orchardcore.Themes)\r\norchardcore.Queries.Controllers.AdminController.Create (orchardcore.Queries)\r\norchardcore.Media.Controllers.AdminController.GetMediaItems (orchardcore.Media)\r\norchardcore.ContentTypes.Controllers.AdminController.Index (orchardcore.ContentTypes)\r\norchardcore.Lucene.Controllers.AdminController.Edit (orchardcore.Lucene)\r\norchardcore.Queries.Controllers.AdminController.Edit (orchardcore.Queries)\r\norchardcore.Queries.Controllers.AdminController.Index (orchardcore.Queries)\r\norchardcore.Queries.sql.Controllers.AdminController.Query (orchardcore.Queries)\r\norchardcore.Features.Controllers.AdminController.Features (orchardcore.Features)\r\norchardcore.Flows.Controllers.AdminController.BuildEditor (orchardcore.Flows)\r\norchardcore.Layers.Controllers.AdminController.Index (orchardcore.Layers)\r\norchardcore.Recipes.Controllers.AdminController.Index (orchardcore.Recipes)\r\norchardcore.Layers.Controllers.AdminController.Create (orchardcore.Layers)\r\norchardcore.Lucene.Controllers.AdminController.Index (orchardcore.Lucene)\r\norchardcore.Widgets.Controllers.AdminController.BuildEditor (orchardcore.Widgets)\r\norchardcore.Users.Controllers.AdminController.Index (orchardcore.Users)\r\norchardcore.Layers.Controllers.AdminController.Edit (orchardcore.Layers)\r\norchardcore.Menu.Controllers.AdminController.Create (orchardcore.Menu)\r\norchardcore.Media.Controllers.AdminController.Index (orchardcore.Media)\r\norchardcore.Media.Controllers.AdminController.MediaApplication (orchardcore.Media)\r\norchardcore.Media.Controllers.AdminController.GetFolders (orchardcore.Media)\r\norchardcore.Settings.Controllers.AdminController.Index (orchardcore.Settings)\r\norchardcore.Roles.Controllers.AdminController.Index (orchardcore.Roles)\r\norchardcore.Media.Controllers.AdminController.CreateFileResult (orchardcore.Media)\r\norchardcore.Roles.Controllers.AdminController.Edit (orchardcore.Roles)\r\norchardcore.Sitemaps.Controllers.AdminController.List (orchardcore.Sitemaps)\r\norchardcore.Roles.Controllers.AdminController.Create (orchardcore.Roles)\r\norchardcore.Sitemaps.Controllers.AdminController.Create (orchardcore.Sitemaps)\r\norchardcore.Lucene.Controllers.AdminController.Query (orchardcore.Lucene)\r\norchardcore.Menu.Controllers.AdminController.Edit (orchardcore.Menu)","status":500,"detail":"   at Microsoft.AspNetCore.Routing.Matching.DefaultEndpointSelector.ReportAmbiguity(CandidateState[] candidateState)\r\n   at Microsoft.AspNetCore.Routing.Matching.DefaultEndpointSelector.ProcessFinalCandidates(HttpContext httpContext,CandidateSet candidateSet)\r\n   at Microsoft.AspNetCore.Routing.Matching.DfaMatcher.SelectEndpointWithPoliciesAsync(HttpContext httpContext,IEndpointSelectorPolicy[] policies,CandidateSet candidateSet)\r\n   at Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware.<Invoke>g__AwaitMatch|8_1(EndpointRoutingMiddleware middleware,HttpContext httpContext,Task matchTask)\r\n   at orchardcore.Diagnostics.DiagnosticsstartupFilter.<>c__displayClass3_0.<<Configure>b__1>d.MoveNext() in C:\\projects\\orchardcore\\src\\orchardcore.Modules\\orchardcore.Diagnostics\\DiagnosticsstartupFilter.cs:line 36\r\n--- End of stack trace from prevIoUs location where exception was thrown ---\r\n   at Microsoft.AspNetCore.Diagnostics.StatusCodePagesMiddleware.Invoke(HttpContext context)\r\n   at orchardcore.ContentPreview.PreviewStartupFilter.<>c.<<Configure>b__1_1>d.MoveNext() in C:\\projects\\orchardcore\\src\\orchardcore.Modules\\orchardcore.ContentPreview\\PreviewStartupFilter.cs:line 23\r\n--- End of stack trace from prevIoUs location where exception was thrown ---\r\n   at orchardcore.Modules.ModularTenantRouterMiddleware.Invoke(HttpContext httpContext) in C:\\projects\\orchardcore\\src\\orchardcore\\orchardcore\\Modules\\ModularTenantRouterMiddleware.cs:line 63\r\n   at orchardcore.Environment.Shell.Scope.ShellScope.UsingAsync(Func`2 execute) in C:\\projects\\orchardcore\\src\\orchardcore\\orchardcore.Abstractions\\Shell\\Scope\\ShellScope.cs:line 206\r\n   at orchardcore.Modules.ModularTenantContainerMiddleware.Invoke(HttpContext httpContext) in C:\\projects\\orchardcore\\src\\orchardcore\\orchardcore\\Modules\\ModularTenantContainerMiddleware.cs:line 59\r\n   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)\r\n   at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext,ISwaggerProvider swaggerProvider)\r\n   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)\r\n   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware,HttpContext context,Task task)","traceId":"00-9a337038340ba445b4af997d9b91f69a-3f2d214c2e86334c-00"}

我想知道是否可以覆盖 DefaultEndpointSelector 类,但它是密封的。有没有办法让它在不修改cms控制器的情况下运行?也许有人对此有一些经验。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...