Activities of "ddelamare"

I am seeing wrong icons in the popups and now I am seeing them in the data grids.

  • ABP Framework version: v8.1.4
  • UI Type: Blazor WASM
  • Database System: EF Core (SQL Server)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
  • Exception message and full stack trace: N/A
  • Steps to reproduce the issue: Show an error dialog.

After upgrading to 8.1.4, strange icons are being shown in the alert windows. I am using Blazorise 1.5.3 with the FontAwesome Icons package installed. Instead of the usual "X" icon when an exception occurs it is showing a StepForward icon. I did some digging and this seems to come from the Volo.Abp.BlazoriseUI 8.1.4 dll which I decompiled to find this

which is different than the GitHub source which lists the the Error icon should be a Times.

I have resolved the issue. It was caused by our service called IntegrationAppService which was generating bad routes in version 8.0.2. After renaming the class to IntegrationsAppService, it worked correctly. This leads me to believe that there is some conflict in the names with the new ABP version.

For future reference, I used this code in the Program.cs of the API host right before the app.RunAsync() call to figure out the issue.

/*

  • Uncomment this snippet to have it throw an exception when there's an invalid route. Then data can be
  • extracted from the exception to find the pattern of the broken route. var endpointSources = builder.Services.GetRequiredService<IEnumerable<EndpointDataSource>>(); // This call will throw an execption for invalid routes. var endpoints = endpointSources.SelectMany(es => es.Endpoints); */

/*

  • Running this in the immediates window while having a debugger breaking before the exception will list
  • all of the routes with invalid patterns.

var problem = ((Microsoft.AspNetCore.Routing.CompositeEndpointDataSource)endpointSources.First()).DataSources.First(); var actions = ((Microsoft.AspNetCore.Mvc.Routing.ControllerActionEndpointDataSource)problem)._actions.ActionDescriptors; actions.Items.Where(x => x.Properties.Count == 1 && x.AttributeRouteInfo.Template.Contains("//")) */

Note that the error persists after removing the AppController class from the project.

I am aware of what the route should be, but the issue is that we do not have that route specified in our controller. I attempted to run the 8.x template project but it fails out of the box.

Here are all of the public methods in our controller

[Route("api/app")]
public class AppController : AbpController

[HttpGet]
[Route("manifest.webmanifest")]
public async Task Manifest()

[HttpGet]
[Route("asset/{name}")]
public async Task Asset(string name)

[HttpGet]
[Route("seo/asset/{tenantId}/{name}")]
public async Task SeoAsset(Guid tenantId, string name)
  • ABP Framework version: 8.0.2
  • UI Type: Blazor WASM
  • Database System: EF Core (SQL Server)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
  • Exception message and full stack trace: RoutePatternException: The route template separator character '/' cannot appear consecutively. It must be separated by either a parameter or a literal value.

Exception Route Pattern that fails: api/app//{id}

Microsoft.AspNetCore.Routing.Patterns.RoutePatternException
  HResult=0x80131500
  Message=The route template separator character '/' cannot appear consecutively. It must be separated by either a parameter or a literal value.
  Source=Microsoft.AspNetCore.Routing
  StackTrace:
   at Microsoft.AspNetCore.Routing.Patterns.RoutePatternParser.Parse(String pattern)
   at Microsoft.AspNetCore.Mvc.Routing.ActionEndpointFactory.AddEndpoints(List`1 endpoints, HashSet`1 routeNames, ActionDescriptor action, IReadOnlyList`1 routes, IReadOnlyList`1 conventions, IReadOnlyList`1 groupConventions, IReadOnlyList`1 finallyConventions, IReadOnlyList`1 groupFinallyConventions, Boolean createInertEndpoints, RoutePattern groupPrefix)
   at Microsoft.AspNetCore.Mvc.Routing.ControllerActionEndpointDataSource.CreateEndpoints(RoutePattern groupPrefix, IReadOnlyList`1 actions, IReadOnlyList`1 conventions, IReadOnlyList`1 groupConventions, IReadOnlyList`1 finallyConventions, IReadOnlyList`1 groupFinallyConventions)
   at Microsoft.AspNetCore.Mvc.Routing.ActionEndpointDataSourceBase.UpdateEndpoints()
   at Microsoft.AspNetCore.Mvc.Routing.ActionEndpointDataSourceBase.Initialize()
   at Microsoft.AspNetCore.Mvc.Routing.ActionEndpointDataSourceBase.GetChangeToken()
   at Microsoft.Extensions.Primitives.ChangeToken.ChangeTokenRegistration`1..ctor(Func`1 changeTokenProducer, Action`1 changeTokenConsumer, TState state)
   at Microsoft.Extensions.Primitives.ChangeToken.OnChange(Func`1 changeTokenProducer, Action changeTokenConsumer)
   at Microsoft.AspNetCore.Routing.CompositeEndpointDataSource.CreateChangeTokenUnsynchronized(Boolean collectionChanged)
   at Microsoft.AspNetCore.Routing.CompositeEndpointDataSource.EnsureChangeTokenInitialized()
   at Microsoft.AspNetCore.Routing.CompositeEndpointDataSource.EnsureEndpointsInitialized()
   at Microsoft.AspNetCore.Routing.CompositeEndpointDataSource.get_Endpoints()
   at TOG.Program.<>c.<Main>b__0_4(EndpointDataSource es) in C:\Users\DanielDelamare\source\repos\TOG2\src\TOG.HttpApi.Host\Program.cs:line 92
  • Steps to reproduce the issue: This error occurs when the application API is started and did not occur prior to the upgrade.

We have a controller that has a route attribute of "api/app" and is a subclass of AbpController. I checked if we defined any similar routes in our code, but there wasn't anything that could be a match. This was not happening prior to the upgrade and there have been no changes outside of the ones required to upgrade.

Showing 1 to 6 of 6 entries
Made with ❤️ on ABP v9.1.0-preview. Updated on November 11, 2024, 11:11