Activities of "maliming"

System.UriFormatException: Invalid URI: The hostname could not be parsed.

You can also share the context logs when this exception occor


app.Use(async (httpContext, next) =>
{
    var logger = httpContext.RequestServices.GetRequiredService<ILogger<YourModule>>();

    try
    {
        //BaseUri: new Uri(request.Scheme + Uri.SchemeDelimiter + host + request.PathBase, UriKind.Absolute),
        // RequestUri: new Uri(request.GetEncodedUrl(), UriKind.Absolute)),
        logger.LogError("BaseUri: " + httpContext.Request.Scheme + Uri.SchemeDelimiter + httpContext.Request.Host + httpContext.Request.PathBase);
        logger.LogError("RequestUri: " + httpContext.Request.GetEncodedUrl());

    }
    catch (Exception e)
    {
        logger.LogError(e, e.Message);
    }

    await next(httpContext);
});
app.UseAuthentication();
app.UseAuthorization();

hi

I checked the error, and it seems to occur on these lines.

https://github.com/openiddict/openiddict-core/blob/dev/src/OpenIddict.Client.AspNetCore/OpenIddictClientAspNetCoreHandlers.cs#L120-L121

Can you check the HttpRequest info of your production environment

You can add a middleware to output the HttpRequest info to logs.

hi Mohammed

context.ProtocolMessage.RedirectUri = "http://localhost:4200";

You should not redirect to angular. It should be redirected to authserver, and then authserver will be redirected to angular.

Or can you explain why you did this?

hi

The token has returned, I guess this is an angular issue. Our angular team will reply to you ASAP. : )

hi

As you see, all url have http protocol.

You can add a middleware force set the scheme as https

app.Use((httpContext, next) =>
{
    httpContext.Request.Scheme = "https";
    return next();
});

hi

You don't need to clear all the resolvers.

You can add your Contributor after CurrentUserTenantResolveContributor

options.TenantResolvers.InsertAfter(
    r => r is CurrentUserTenantResolveContributor,
    new DomainTenantResolveContributor(domainFormat)
);

Please output some logs in your Contributor then check the logs to see what happened.

hi

The key point is: If you confirm you have found a valid tenant, then set context.Handled = true; and return a tenant name.

The DomainTenantResolveContributor always breaks the resolve process. It always has a tenant value.

So the second one will not be working anymore.

https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/DomainTenantResolveContributor.cs#L36

You can add your DomainTenantResolveContributor to change this behavior.

btw you can only call AddDomainTenantResolver once. Otherwise one of them will not work

What is the angular url?

I need to reproduce the issue.

Showing 5611 to 5620 of 10651 entries
Learn More, Pay Less
33% OFF
All Trainings!
Get Your Deal
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.0.0-preview. Updated on September 12, 2025, 10:20