2 additionalHeaderClaims, IDictionary
2 additionalInnerHeaderClaims, String tokenType)
at Microsoft.IdentityModel.JsonWebTokens.JsonWebTokenHandler.CreateToken(SecurityTokenDescriptor tokenDescriptor)
at OpenIddict.Server.OpenIddictServerHandlers.Protection.GenerateIdentityModelToken.HandleAsync(GenerateTokenContext context)
at OpenIddict.Server.OpenIddictServerDispatcher.DispatchAsync[TContext](TContext context)
at OpenIddict.Server.OpenIddictServerDispatcher.DispatchAsync[TContext](TContext context)
at OpenIddict.Server.OpenIddictServerHandlers.GenerateAuthorizationCode.HandleAsync(ProcessSignInContext context)
at OpenIddict.Server.OpenIddictServerDispatcher.DispatchAsync[TContext](TContext context)
at OpenIddict.Server.OpenIddictServerDispatcher.DispatchAsync[TContext](TContext context)
at OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandler.SignInAsync(ClaimsPrincipal user, AuthenticationProperties properties)
at Microsoft.AspNetCore.Authentication.AuthenticationService.SignInAsync(HttpContext context, String scheme, ClaimsPrincipal principal, AuthenticationProperties properties)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|30_0[TFilter,TFilterAsync](ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeResultFilters>g__Awaited|28_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Volo.Abp.AspNetCore.Auditing.AbpAuditingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Volo.Abp.AspNetCore.Auditing.AbpAuditingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Volo.Abp.AspNetCore.Uow.AbpUnitOfWorkMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Volo.Abp.AspNetCore.ExceptionHandling.AbpExceptionHandlingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Volo.Abp.AspNetCore.ExceptionHandling.AbpExceptionHandlingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Volo.Abp.AspNetCore.Serilog.AbpSerilogMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Volo.Abp.AspNetCore.MultiTenancy.MultiTenancyMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Builder.ApplicationBuilderAbpOpenIddictMiddlewareExtension.<>c__DisplayClass0_0.<<UseAbpOpenIddictValidation>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Prometheus.HttpMetrics.HttpRequestDurationMiddleware.Invoke(HttpContext context)
at Prometheus.HttpMetrics.HttpRequestCountMiddleware.Invoke(HttpContext context)
at Prometheus.HttpMetrics.HttpInProgressMiddleware.Invoke(HttpContext context)
at Volo.Abp.AspNetCore.Security.AbpSecurityHeadersMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Volo.Abp.AspNetCore.Tracing.AbpCorrelationIdMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.RequestLocalization.AbpRequestLocalizationMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)Not sure if I have done anything special, I am running Mac OS 14.1.2 (23B92) and has worked great, until now.
After login via auth server, the above exception is present. Got the following from the log:
[23:17:19 ERR] An unhandled exception has occurred while executing the request.
System.InvalidOperationException: IDX10638: Cannot create the SignatureProvider, 'key.HasPrivateKey' is false, cannot create signatures. Key: Microsoft.IdentityModel.Tokens.X509SecurityKey, KeyId: '99E4CD9A8E7A78218B14A097E90AF3536263F140', InternalId: 'meTNmo56eCGLFKCX6QrzU2Jj8UA'..
at Microsoft.IdentityModel.Tokens.AsymmetricSignatureProvider..ctor(SecurityKey key, String algorithm, Boolean willCreateSignatures)
at Microsoft.IdentityModel.Tokens.AsymmetricSignatureProvider..ctor(SecurityKey key, String algorithm, Boolean willCreateSignatures, CryptoProviderFactory cryptoProviderFactory)
at Microsoft.IdentityModel.Tokens.CryptoProviderFactory.CreateSignatureProvider(SecurityKey key, String algorithm, Boolean willCreateSignatures, Boolean cacheProvider)
at Microsoft.IdentityModel.Tokens.CryptoProviderFactory.CreateForSigning(SecurityKey key, String algorithm, Boolean cacheProvider)
at Microsoft.IdentityModel.Tokens.CryptoProviderFactory.CreateForSigning(SecurityKey key, String algorithm)
at Microsoft.IdentityModel.JsonWebTokens.JwtTokenUtilities.CreateEncodedSignature(String input, SigningCredentials signingCredentials)
at Microsoft.IdentityModel.JsonWebTokens.JsonWebTokenHandler.CreateTokenPrivate(String payload, SigningCredentials signingCredentials, EncryptingCredentials encryptingCredentials, String compressionAlgorithm, IDictionary`2 additionalHeaderClaims, IDictionary`2 additionalInnerHeaderClaims, String tokenType)
Hi liangshiwei,
Thanks, that was very helpful.
To get a list of all users when using the ABP framework, I did this:
using Volo.Abp.Identity;
protected async Task GetIdentityUsersAsync()
{
var users = await IdentityUserAppService.GetListAsync(new GetIdentityUsersInput());
UserList = users.Items.ToList();
}
But now, when using the micro service template, as for my understanding, the Volo.Abp.Identy is deployed as an own micro service. Can you please provide a recommended way of how to get a list of the users when using ABP Commercial from another micro service (e.g., from ProductService or user created one)?
Kind regards, Carl
Thanks! Working perfectly! :-)
hi
Can you share a simple project?
liming.ma@volosoft.com
Thanks, I have sent you one.
I have followed the https://docs.abp.io/en/commercial/latest/startup-templates/microservice/add-microservice guide, and most of it works. However, once I try to use my AppServices endpoints from the Blazor project, the JavaScript console says that:
rit: Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]
Unhandled exception rendering component: Could not found remote action for method: System.Threading.Tasks.Task`1[Volo.Abp.Application.Dtos.PagedResultDto`1[GeoTicket.TicketService.Categories.CategoryDto]] GetListAsync(GeoTicket.TicketService.Categories.GetCategoryListDto) on the URL: https://localhost:44325
Volo.Abp.AbpException: Could not found remote action for method: System.Threading.Tasks.Task`1[Volo.Abp.Application.Dtos.PagedResultDto`1[GeoTicket.TicketService.Categories.CategoryDto]] GetListAsync(GeoTicket.TicketService.Categories.GetCategoryListDto) on the URL: https://localhost:44325
at Volo.Abp.Http.Client.DynamicProxying.ApiDescriptionFinder.FindActionAsync(HttpClient client, String baseUrl, Type serviceType, MethodInfo method)
at Volo.Abp.Http.Client.DynamicProxying.DynamicHttpProxyInterceptor`1.<GetActionApiDescriptionModel>d__25[[GeoTicket.TicketService.Categories.ICategoryAppService, GeoTicket.TicketService.Application.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].MoveNext()
at Volo.Abp.Http.Client.DynamicProxying.DynamicHttpProxyInterceptor`1.<InterceptAsync>d__24[[GeoTicket.TicketService.Categories.ICategoryAppService, GeoTicket.TicketService.Application.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].MoveNext()
at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.<InterceptAsync>d__3`1[[Volo.Abp.Http.Client.DynamicProxying.DynamicHttpProxyInterceptor`1[[GeoTicket.TicketService.Categories.ICategoryAppService, GeoTicket.TicketService.Application.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], Volo.Abp.Http.Client, Version=7.3.3.0, Culture=neutral, PublicKeyToken=null],[Volo.Abp.Application.Dtos.PagedResultDto`1[[GeoTicket.TicketService.Categories.CategoryDto, GeoTicket.TicketService.Application.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], Volo.Abp.Ddd.Application.Contracts, Version=7.3.3.0, Culture=neutral, PublicKeyToken=null]].MoveNext()
at Castle.DynamicProxy.AsyncInterceptorBase.<ProceedAsynchronous>d__14`1[[Volo.Abp.Application.Dtos.PagedResultDto`1[[GeoTicket.TicketService.Categories.CategoryDto, GeoTicket.TicketService.Application.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], Volo.Abp.Ddd.Application.Contracts, Version=7.3.3.0, Culture=neutral, PublicKeyToken=null]].MoveNext()
at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.<ProceedAsync>d__7[[Volo.Abp.Application.Dtos.PagedResultDto`1[[GeoTicket.TicketService.Categories.CategoryDto, GeoTicket.TicketService.Application.Contracts, Version=1.0.0.0,
The ticket-service swagger seems to be working, also through the gateway.
So, my question in, how to consume AppServices with start from the guide Add Microservice above? When using ABP framework, it seems that it is managed dynamically?
Never mind. If you forgot / missed to copy it after payment, you can simply recreate a new solution with abp cli and take the new license key from there.
Thanks gterdem,
I think that I got most of if working now. Great support! :-)
Thanks gterdem,
I did a complete reset of the helm values. This is what I got:
# auth-server sub-chart override
authserver:
config:
selfUrl: https://auth.staging.microservice.io
corsOrigins: http://microservice-blazor,https://blazor.staging.microservice.io,https://gateway-web.staging.microservice.io,https://microservice-gateway-web-public,https://microservice-identity,https://microservice-administration,https://microservice-saas,https://microservice-product
allowedRedirectUrls: http://blazor.staging.microservice.io,https://blazor.staging.microservice.io
disablePii: "false"
identityService:
connString: "Server=microservice-sqldb,1433;Database=Microservice_Identity;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
administrationService:
connString: "Server=microservice-sqldb,1433;Database=Microservice_Administration;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
saasService:
connString: "Server=microservice-sqldb,1433;Database=Microservice_Saas;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
authServer:
authority: http://microservice-authserver
requireHttpsMetadata: "false"
swaggerClientId: WebGateway_Swagger
dotnetEnv: Production
redisHost: microservice-redis
rabbitmqHost: microservice-rabbitmq
elasticsearchUrl: http://microservice-elasticsearch
ingress:
host: auth.staging.microservice.io
tlsSecret: staging.microservice.io
image:
repository: registry.digitalocean.com/microservice/microservice-app-authserver
tag: latest
# identity-service sub-chart override
identity:
config:
selfUrl: https://microservice-identity
corsOrigins: https://microservice-gateway-web
connectionStrings:
identityService: "Server=microservice-sqldb,1433;Database=Microservice_Identity;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
administrationService: "Server=microservice-sqldb,1433;Database=Microservice_Administration;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
saasService: "Server=microservice-sqldb,1433;Database=Microservice_Saas;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
authServer:
authority: http://microservice-authserver
requireHttpsMetadata: "false"
dotnetEnv: Production
redisHost: microservice-redis
rabbitmqHost: microservice-rabbitmq
elasticsearchUrl: http://microservice-elasticsearch
openIdDict: #Seed applications and resources
applications:
authServerRootUrl: https://microservice-authserver/
blazorRootUrl: https://blazor.staging.microservice.io/
publicWebRootUrl: https://microservice-public-web/
webGatewayRootUrl: https://microservice-gateway-web/
publicWebGatewayRootUrl: https://microservice-gateway-web-public/
resources:
accountServiceRootUrl: https://microservice-authserver/
administrationServiceRootUrl: https://microservice-administration/
identityServiceRootUrl: https://microservice-identity/
saasServiceRootUrl: https://microservice-saas/
productServiceRootUrl: https://microservice-product/
ingress:
host: microservice-identity
image:
repository: registry.digitalocean.com/microservice/microservice-service-identity
tag: latest
# administration-service sub-chart override
administration:
config:
selfUrl: https://microservice-administration
corsOrigins: https://microservice-gateway-web,https://microservice-gateway-web-public
connectionStrings:
administrationService: "Server=microservice-sqldb,1433;Database=Microservice_Administration;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
saasService: "Server=microservice-sqldb,1433;Database=Microservice_Saas;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
authServer:
authority: http://microservice-authserver
requireHttpsMetadata: "false"
swaggerClientId: WebGateway_Swagger
remoteServices:
abpIdentityBaseUrl: https://microservice-identity
useCurrentToken: "false"
dotnetEnv: Production
redisHost: microservice-redis
rabbitmqHost: microservice-rabbitmq
elasticsearchUrl: http://microservice-elasticsearch
synchedCommunication: # Used for server-to-server (client-credentials) communication with identityService for user permissions
authority: https://microservice-authserver
requireHttps: "false"
validateIssuerName: "false"
validateEndpoints: "false"
ingress:
host: microservice-administration
image:
repository: registry.digitalocean.com/microservice/microservice-service-administration
tag: latest
# saas-service sub-chart override
saas:
config:
selfUrl: https://microservice-saas
corsOrigins: https://microservice-gateway-web
connectionStrings:
administrationService: "Server=microservice-sqldb,1433;Database=Microservice_Administration;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
saasService: "Server=microservice-sqldb,1433;Database=Microservice_Saas;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
authServer:
authority: http://microservice-authserver
requireHttpsMetadata: "false"
swaggerClientId: WebGateway_Swagger
dotnetEnv: Production
redisHost: microservice-redis
rabbitmqHost: microservice-rabbitmq
elasticsearchUrl: http://microservice-elasticsearch
ingress:
host: microservice-saas
image:
repository: registry.digitalocean.com/microservice/microservice-service-saas
tag: latest
# product-service sub-chart override
product:
config:
selfUrl: https://microservice-product
corsOrigins: https://microservice-gateway-web,https://microservice-gateway-web-public
connectionStrings:
productService: "Server=microservice-sqldb,1433;Database=Microservice_ProductService;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
administrationService: "Server=microservice-sqldb,1433;Database=Microservice_Administration;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
saasService: "Server=microservice-sqldb,1433;Database=Microservice_Saas;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
authServer:
authority: http://microservice-authserver
requireHttpsMetadata: "false"
swaggerClientId: WebGateway_Swagger
dotnetEnv: Production
redisHost: microservice-redis
rabbitmqHost: microservice-rabbitmq
elasticsearchUrl: http://microservice-elasticsearch
ingress:
host: microservice-product
image:
repository: registry.digitalocean.com/microservice/microservice-service-product
tag: latest
# gateway-web sub-chart override
gateway-web:
config:
selfUrl: https://gateway-web.staging.microservice.io
corsOrigins: https://blazor.staging.microservice.io
globalConfigurationBaseUrl: http://microservice-gateway-web
authServer:
authority: http://microservice-authserver
requireHttpsMetadata: "false"
swaggerClientId: WebGateway_Swagger
dotnetEnv: Production
redisHost: microservice-redis
rabbitmqHost: microservice-rabbitmq
elasticsearchUrl: http://microservice-elasticsearch
reRoutes:
accountService:
dns: https://auth.staging.microservice.io
schema: http
host: microservice-authserver
port: 80
identityService:
dns: https://microservice-identity
schema: http
host: microservice-identity
port: 80
administrationService:
dns: https://microservice-administration
schema: http
host: microservice-administration
port: 80
saasService:
dns: https://microservice-saas
schema: http
host: microservice-saas
port: 80
productService:
dns: https://microservice-product
schema: http
host: microservice-product
port: 80
ingress:
host: gateway-web.staging.microservice.io
tlsSecret: staging.microservice.io
image:
repository: registry.digitalocean.com/microservice/microservice-gateway-web
tag: latest
pullPolicy: IfNotPresent
# gateway-web-public sub-chart override
gateway-web-public:
config:
selfUrl: https://microservice-gateway-web-public
globalConfigurationBaseUrl: http://microservice-gateway-web-public
authServer:
authority: http://microservice-authserver
requireHttpsMetadata: "false"
swaggerClientId: WebGateway_Swagger
swaggerClientSecret: "1q2w3e*"
dotnetEnv: Production
redisHost: microservice-redis
rabbitmqHost: microservice-rabbitmq
elasticsearchUrl: http://microservice-elasticsearch
reRoutes:
accountService:
dns: https://microservice-authserver
schema: http
host: microservice-authserver
port: 80
saasService:
dns: https://microservice-saas
schema: http
host: microservice-saas
port: 80
administrationService:
dns: https://microservice-administration
schema: http
host: microservice-administration
port: 80
productService:
dns: https://microservice-product
schema: http
host: microservice-product
port: 80
ingress:
host: microservice-gateway-web-public
# tlsSecret: microservice-tls
image:
repository: registry.digitalocean.com/microservice/microservice-gateway-web-public
tag: latest
pullPolicy: IfNotPresent
kibana:
config:
elasticsearchUrl: http://microservice-elasticsearch:9200
# dbmigrator sub-chart override
dbmigrator:
config:
connectionStrings:
identityService: "Server=microservice-sqldb,1433;Database=Microservice_Identity;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
administrationService: "Server=microservice-sqldb,1433;Database=Microservice_Administration;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
saasService: "Server=microservice-sqldb,1433;Database=Microservice_Saas;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
productService: "Server=microservice-sqldb,1433;Database=Microservice_ProductService;User Id=sa;password=myPassw@rd;TrustServerCertificate=True"
dotnetEnv: Production
elasticsearchUrl: http://microservice-elasticsearch
redisHost: microservice-redis
openIdDict:
applications:
authServerRootUrl: https://microservice-authserver/
angularRootUrl: https://microservice-angular/
webRootUrl: https://microservice-web/
blazorRootUrl: https://blazor.staging.microservice.io/
blazorServerRootUrl: https://microservice-blazor-server/
publicWebRootUrl: https://microservice-public-web/
webGatewayRootUrl: https://microservice-gateway-web/
publicWebGatewayRootUrl: https://microservice-gateway-web-public/
resources:
accountServiceRootUrl: https://microservice-authserver/
administrationServiceRootUrl: https://microservice-administration/
identityServiceRootUrl: https://microservice-identity/
saasServiceRootUrl: https://microservice-saas/
productServiceRootUrl: https://microservice-product/
image:
repository: registry.digitalocean.com/microservice/microservice-db-migrator
tag: latest
pullPolicy: IfNotPresent
# Public Web application sub-chart override
publicweb:
config:
selfUrl: https://public-web.staging.microservice.io
gatewayUrl: http://microservice-gateway-web-public
authServer:
authority: https://auth.staging.microservice.io # should be domain on production (https://auth.mydomain.com)
requireHttpsMetadata: "false"
isOnK8s: "true"
metaAddress: http://microservice-authserver # should be container on production (http://microservice-az-authserver)
dotnetEnv: Production
redisHost: microservice-redis
rabbitmqHost: microservice-rabbitmq
elasticsearchUrl: http://microservice-elasticsearch
ingress:
host: public-web.staging.microservice.io
tlsSecret: staging.microservice.io
image:
repository: registry.digitalocean.com/microservice/microservice-app-public-web
tag: latest
pullPolicy: IfNotPresent
blazor:
config:
selfUrl: https://blazor.staging.microservice.io
gatewayUrl: https://gateway-web.staging.microservice.io
authServer:
authority: https://auth.staging.microservice.io
requireHttpsMetadata: "false"
responseType: "code"
ingress:
host: blazor.staging.microservice.io
tlsSecret: staging.microservice.io
image:
repository: registry.digitalocean.com/microservice/microservice-app-blazor
tag: latest
pullPolicy: IfNotPresent
# Default values for Microservice.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
It starts to working now, but I got following question:
In the dbmigrator log I got successful report:
[19:37:09 INF] Migrating Host side...
[19:37:10 INF] Migrating SaasService database...
[19:37:19 INF] Migrating AdministrationService database...
[19:37:25 INF] Migrating IdentityService database...
[19:37:29 INF] Migrating ProductService database...
[19:37:29 INF] All databases have been successfully migrated (HOST).
[19:37:36 INF] Migrating tenants...
[19:37:36 INF] Migration completed!
But the identity log says:
[19:44:43 INF] Saving external localizations...
[19:44:43 INF] Lock is acquired for db migration and seeding on database named: IdentityService...
[19:44:46 INF] Completed to save external localizations.
[19:44:47 INF] Lock is released for db migration and seeding on database named: IdentityService...
[19:44:47 INF] Seeding IdentityServer data...
[19:44:49 ERR] Exception of type 'Volo.Abp.BusinessException' was thrown.
[19:44:49 WRN] BusinessException has been thrown. The operation will be tried 2 times more. Exception:
Exception of type 'Volo.Abp.BusinessException' was thrown.
[19:45:01 INF] Seeding IdentityServer data...
[19:45:01 ERR] Exception of type 'Volo.Abp.BusinessException' was thrown.
[19:45:01 WRN] BusinessException has been thrown. The operation will be tried 1 times more. Exception:
Exception of type 'Volo.Abp.BusinessException' was thrown.
[19:45:12 INF] Seeding IdentityServer data...
[19:45:12 ERR] Exception of type 'Volo.Abp.BusinessException' was thrown.
[19:45:12 FTL] Microservice.IdentityService.HttpApi.Host terminated unexpectedly!
Volo.Abp.AbpInitializationException: An error occurred during the initialize Volo.Abp.Modularity.OnPostApplicationInitializationModuleLifecycleContributor phase of the module Microservice.IdentityService.IdentityServiceHttpApiHostModule, Microservice.IdentityService.HttpApi.Host, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: Exception of type 'Volo.Abp.BusinessException' was thrown.. See the inner exception for details.
---> Volo.Abp.BusinessException: Exception of type 'Volo.Abp.BusinessException' was thrown.
at Microservice.IdentityService.DbMigrations.OpenIddictDataSeeder.CreateApplicationAsync(String name, String type, String consentType, String displayName, String secret, List`1 grantTypes, List`1 scopes, List`1 redirectUris, List`1 postLogoutRedirectUris, List`1 permissions, String clientUri, String logoUri) in /src/services/identity/src/Microservice.IdentityService.HttpApi.Host/DbMigrations/OpenIddictDataSeeder.cs:line 422
Any ideas?
Kind regards, Carl