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.
/*
/*
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)
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
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.