hi
Please change "BaseUrl": "https://{{tenantName}}.safetyplus-dev.com"
to "BaseUrl": "https://{0}.safetyplus-dev.com"
And try adding WebAssemblyMultiTenantUrlProvider
to your blazer.client
project and check the error messages in the browser console.
Thanks. I have refunded your ticket.
[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(IMultiTenantUrlProvider), typeof(MultiTenantUrlProvider))]
public class WebAssemblyMultiTenantUrlProvider : MultiTenantUrlProvider
{
private readonly static string[] ProtocolPrefixes = ["http://", "https://"];
protected NavigationManager NavigationManager { get; }
protected ILogger<WebAssemblyMultiTenantUrlProvider> Logger { get; }
public WebAssemblyMultiTenantUrlProvider(
ICurrentTenant currentTenant,
ITenantStore tenantStore,
NavigationManager navigationManager,
ILogger<WebAssemblyMultiTenantUrlProvider> logger)
: base(currentTenant, tenantStore)
{
NavigationManager = navigationManager;
Logger = logger;
}
public async override Task<string> GetUrlAsync(string templateUrl)
{
Logger.LogError("templateUrl: " + templateUrl); // https://{0}.safetyplus-dev.com
if (!CurrentTenant.IsAvailable)
{
var absoluteUri = NavigationManager.ToAbsoluteUri(NavigationManager.Uri);
var url = absoluteUri.Host;
Logger.LogError("url: " + url); // greentherm.safetyplus-dev.com
var extractResult = FormattedStringValueExtracter.Extract(url, templateUrl, ignoreCase: true);
if (extractResult.IsMatch)
{
var tenant = extractResult.Matches[0].Value; // should be greentherm
Logger.LogError("tenant: " + tenant);
var apiUrl = templateUrl.Replace("{0}", tenant);
Logger.LogError("apiUrl: " + apiUrl); // https://greentherm.safetyplus-dev.com
return apiUrl;
}
Logger.LogError("No match tenant found");
}
return await GetUrlAsync(templateUrl);
}
}
hi
I found the problem. I will provide the solution soon
hi
Can I check it by zoom?
https://us05web.zoom.us/j/87291194012?pwd=PmbAE6qr5bCKGGAnpRM3FKhfI7i24a.1
You can join and share your screen.
Thanks
hi Buckoge
We may need to use some variables or expressions in the template. I think it is best to have someone who knows a little bit about programming maintain the template.
hi
You can inject the logger
and write some error logs in your MyRemoteServiceConfigurationProvider
.
then check it in the browser console.
hi mahuwei Please create a new question and share your problem details. Thanks.
hi
[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(IRemoteServiceConfigurationProvider), typeof(RemoteServiceConfigurationProvider))]
public class MyRemoteServiceConfigurationProvider
https://abp.io/docs/latest/framework/fundamentals/dependency-injection#combining-all-together
hi
Try to create a MyRemoteServiceConfigurationProvider
to override and replace it.
hi
We have the PR to replace tenant name.
https://github.com/abpframework/abp/pull/18592
{0}
will replaced by the current tenant name.
https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.RemoteServices/Volo/Abp/Http/Client/RemoteServiceConfigurationProvider.cs#L34-L53
Can you debug this method in local?
hi
I have checked.
The https://greentherm.safetyplus-xxx.com
can access Cookies from .xxxplus-dev.com
So you can try to change the BaseUrl from https://safetyplus-xxx.com to https://greentherm.safetyplus-xxx.com
or https://{{tenantName}}.safetyplus-xxx.com
, also https://{0}.safetyplus-xxx.com