Käyttäjän "carl.hallqvist" toiminnot

  • ABP Framework version: v7.3.3
  • 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: N/A

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.&lt;InterceptAsync&gt;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.&lt;ProceedAsync&gt;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?

Vastaus

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.

Kysymys
  • ABP Framework version: v7.3.3
  • UI Type: Blazor WASM
  • Database System: EF Core (SQL Server) / MongoDB
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
  • Exception message and full stack trace: [20:55:48 ERR] ABP-LIC-0017 - License code is not valid: PABMAGkAYwBlAG4AcwB.......
  • Steps to reproduce the issue: I bought a license, after my trail period has ended. Where can I see the correct license key (I saw it once when I got it, but thought that it would be provided by mail or in the abp.io private area).

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

Thanks gterdem,

Unfortuntely, I got same error. I think that I need to get each app / service / gateway working.

auth.staging.microservice.io service seems to be ok, the login / logout is working fine.

Log from microservice-public-web

[20:23:22 INF] Sending HTTP request GET https://gateway-public.staging.microservice.io/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0
[20:23:22 INF] Received HTTP response headers after 13.0113ms - 502

So, the response from the gateway is 502, and when looking into the log in the gateway I got:

Log from geoticket-gateway-web-public:

[20:23:22 INF] Request starting HTTP/1.1 GET http://gateway-public.staging.microservice.io/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0 - -
[20:23:22 INF] requestId: 0HMUBBQVGSBOD:00000004, previousRequestId: no previous request id, message: EndpointRateLimiting is not enabled for /api/abp/{everything}
[20:23:22 INF] requestId: 0HMUBBQVGSBOD:00000004, previousRequestId: no previous request id, message: No authentication needed for /api/abp/application-configuration
[20:23:22 INF] requestId: 0HMUBBQVGSBOD:00000004, previousRequestId: no previous request id, message: /api/abp/{everything} route does not require user to be authorized
[20:23:22 WRN] requestId: 0HMUBBQVGSBOD:00000004, previousRequestId: no previous request id, message: Error Code: ConnectionToDownstreamServiceError Message: Error connecting to downstream service, exception: System.Net.Http.HttpRequestException: Connection refused (localhost:44367)
 ---> System.Net.Sockets.SocketException (111): Connection refused
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
   at System.Net.Sockets.Socket.<ConnectAsync>g__WaitForConnectWithCancellation|281_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(QueueItem queueItem)
   at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.HttpConnectionWaiter`1.WaitForConnectionAsync(Boolean async, CancellationToken requestCancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
   at Ocelot.Requester.HttpClientHttpRequester.GetResponse(HttpContext httpContext) errors found in ResponderMiddleware. Setting error response for request path:/api/abp/application-configuration, request method: GET
[20:23:22 INF] Request finished HTTP/1.1 GET http://gateway-public.staging.microservice.io/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0 - - - 502 0 - 6.7145ms

This is my value file:

# public-web sub-chart override
public-web:
  config:
    selfUrl: https://public.staging.microservice.io
    gatewayUrl: https://gateway-public.staging.microservice.io
    authServer:
      authority: https://auth.staging.microservice.io
      requireHttpsMetadata: "false"
      isOnProd: "true"
      metaAddress: http://microservice-authserver
    dotnetEnv: Production
    redisHost: microservice-redis
    rabbitmqHost: microservice-rabbitmq
    elasticsearchHost: http://microservice-elasticsearch
  ingress:
    host: public.staging.microservice.io
    tlsSecret: public-staging-microservice-io-tls
  image:
    repository: "registry.digitalocean.com/microservice/microservice-app-public-web"
    tag: latest
	
###

# gateway-web-public sub-chart override
gateway-web-public:
  config:
    selfUrl: https://gateway-public.staging.microservice.io
    authServer:
      authority: http://microservice-authserver
      requireHttpsMetadata: "false"
      swaggerClientId: WebGateway_Swagger
      swaggerClientSecret: "1q2w3e*"
    dotnetEnv: Production
    redisHost: microservice-redis
    rabbitmqHost: microservice-rabbitmq
    elasticsearchHost: http://microservice-elasticsearch
  ingress:
    host: gateway-public.staging.microservice.io
    tlsSecret: gateway-public-staging-microservice-io-tls
  image:
    repository: "registry.digitalocean.com/microservice/microservice-gateway-web-public"
    tag: latest
  reRoutes:
    accountService:
      url: http://microservice-authserver
    identityService:
      url: http://microservice-identity
    administrationService:
      url: http://microservice-administration

Kind regards, Carl

Hi,

I have almost managed to deploy everything. However, got some configuration failure from public web app:

[19:46:55 INF] TRIAL-INFO - You are using the trial version of ABP and your expiry date is 2023-10-26 [19:46:55 INF] Now listening on: http://[::]:80 [19:46:55 INF] Application started. Press Ctrl+C to shut down. [19:46:55 INF] Hosting environment: Production [19:46:55 INF] Content root path: /app [19:48:58 INF] Request starting HTTP/1.1 GET http://public.staging.microservice.io/ - - [19:48:58 WRN] Could not find IdentityClientConfiguration for AbpMvcClient. Either define a configuration for AbpMvcClient or set a default configuration. [19:48:58 INF] Start processing HTTP request GET https://microservice-gateway-web-public/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0 [19:48:58 INF] Sending HTTP request GET https://microservice-gateway-web-public/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0 [19:49:00 INF] Sending HTTP request GET https://microservice-gateway-web-public/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0 [19:49:04 INF] Sending HTTP request GET https://microservice-gateway-web-public/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0 [19:49:12 INF] Sending HTTP request GET https://microservice-gateway-web-public/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0 [19:49:28 INF] Sending HTTP request GET https://microservice-gateway-web-public/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0 [19:49:28 ERR] Connection id "0HMU9033L8A7L", Request id "0HMU9033L8A7L:00000001": An unhandled exception was thrown by the application. Volo.Abp.Http.Client.AbpRemoteCallException: An error occurred during the ABP remote HTTP request. (Connection refused (microservice-gateway-web-public:443)) See the inner exception for details. ---> System.Net.Http.HttpRequestException: Connection refused (microservice-gateway-web-public:443) ---> System.Net.Sockets.SocketException (111): Connection refused

This is my value file:

# auth-server sub-chart override
authserver:
  config:
    selfUrl: https://auth.staging.microservice.io   
    corsOrigins: https://gateway.staging.microservice.io,https://gateway-public.staging.microservice.io,https://identity.staging.microservice.io,https://administration.staging.microservice.io,https://basket.staging.microservice.io,https://catalog.staging.microservice.io,https://order.staging.microservice.io,https://cmskit.staging.microservice.io,https://payment.staging.microservice.io,https://admin.staging.microservice.io,https://www.staging.microservice.io
    allowedRedirectUrls: https://admin.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: auth-staging-microservice-io-tls
  image:
    repository: "registry.digitalocean.com/microservice/microservice-app-authserver"
    tag: latest

# public-web sub-chart override
public-web:
  config:
    selfUrl: https://www.staging.microservice.io
    gatewayUrl: https://microservice-gateway-web-public
    authServer:
      authority: https://auth.staging.microservice.io
      requireHttpsMetadata: "false"
      isOnProd: "true"
      metaAddress: http://microservice-authserver
    dotnetEnv: Production
    redisHost: microservice-redis
    rabbitmqHost: microservice-rabbitmq
    elasticsearchHost: http://microservice-elasticsearch
  ingress:
    host: public.staging.microservice.io
    tlsSecret: public-staging-microservice-io-tls
  image:
    repository: "registry.digitalocean.com/microservice/microservice-app-public-web"
    tag: latest

blazor:
  config:
    selfUrl: https://blazor.staging.microservice.io
    gatewayUrl: https://microservice-gateway-web
    authServer:
      authority: https://microservice-st-authserver
      requireHttpsMetadata: "false"
      responseType: "code"
  ingress:
    host: blazor.staging.microservice.io
    tlsSecret: blazor-staging-microservice-io-tls
  image:
    repository: registry.digitalocean.com/microservice/microservice-app-blazor
    tag: latest
    pullPolicy: IfNotPresent

# identity-service sub-chart override
identity:
  config:
    selfUrl: https://identity.staging.microservice.io
    corsOrigins: https://gateway.staging.microservice.io,https://gateway-public.staging.microservice.io
    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"
      swaggerClientId: WebGateway_Swagger
      swaggerClientSecret: "1q2w3e*"
    dotnetEnv: Production
    redisHost: microservice-redis
    rabbitmqHost: microservice-rabbitmq
    elasticsearchHost: http://microservice-elasticsearch  
  identityServerClients: # Seeded Clients
    webRootUrl: https://admin.staging.microservice.io/  
    publicWebRootUrl: https://www.staging.microservice.io/
    webGatewayRootUrl: https://gateway.staging.microservice.io/
    publicWebGatewayRootUrl: https://gateway-public.staging.microservice.io/
    identityServiceRootUrl: https://identity.staging.microservice.io/
    administrationServiceRootUrl: https://administration.staging.microservice.io/
    accountServiceRootUrl: https://auth.staging.microservice.io
  ingress:
    host: identity.staging.microservice.io
    tlsSecret: identity-staging-microservice-io-tls
  image:
    repository: "registry.digitalocean.com/microservice/microservice-service-identity"
    tag: latest

# administration sub-chart override
administration:
  config:
    selfUrl: https://administration.staging.microservice.io
    corsOrigins: https://microservice-gateway-web,https://microservice-st-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-st-authserver
      requireHttpsMetadata: "false"
      swaggerClientId: WebGateway_Swagger
      swaggerClientSecret: "1q2w3e*"
    remoteServices:
      abpIdentityBaseUrl: https://microservice-st-identity
      useCurrentToken: "false"   
    dotnetEnv: Production
    redisHost: microservice-redis
    rabbitmqHost: microservice-rabbitmq
    elasticsearchHost: http://microservice-elasticsearch
  synchedCommunication: # Used for server-to-server (client-credentials) communication with identityService for user permissions
    authority: http://microservice-authserver
    requireHttps: "false"
    validateIssuerName: "false"
    validateEndpoints: "false"
  ingress:
    host: administration.staging.microservice.io
    tlsSecret: administration-staging-microservice-io-tls
  image:
    repository: registry.digitalocean.com/microservice/microservice-service-administration
    tag: latest

# gateway-web sub-chart override
gateway-web:
  config:
    selfUrl: https://gateway.staging.microservice.io
    corsOrigins: https://admin.staging.microservice.io
    globalConfigurationBaseUrl: http://microservice-gateway-public
    authServer:
      authority: http://microservice-authserver
      requireHttpsMetadata: "false"
      swaggerClientId: WebGateway_Swagger
      swaggerClientSecret: "1q2w3e*"
    dotnetEnv: Production
    redisHost: microservice-redis
    rabbitmqHost: microservice-rabbitmq
    elasticsearchHost: http://microservice-elasticsearch
  ingress:
    host: gateway.staging.microservice.io
    tlsSecret: gateway-staging-microservice-io-tls
  image:
    repository: "registry.digitalocean.com/microservice/microservice-gateway-web"
    tag: latest
  reRoutes:
    accountService:
      url: http://microservice-authserver
    identityService:
      url: http://microservice-identity
    administrationService:
      url: http://microservice-administration

# gateway-web-public sub-chart override
gateway-web-public:
  config:
    selfUrl: https://gateway-public.staging.microservice.io
    authServer:
      authority: http://microservice-authserver
      requireHttpsMetadata: "false"
      swaggerClientId: WebGateway_Swagger
      swaggerClientSecret: "1q2w3e*"
    dotnetEnv: Production
    redisHost: microservice-redis
    rabbitmqHost: microservice-rabbitmq
    elasticsearchHost: http://microservice-elasticsearch
  ingress:
    host: gateway-public.staging.microservice.io
    tlsSecret: gateway-public-staging-microservice-io-tls
  image:
    repository: "registry.digitalocean.com/microservice/microservice-gateway-web-public"
    tag: latest
  reRoutes:
    accountService:
      url: http://microservice-authserver
    identityService:
      url: http://microservice-identity
    administrationService:
      url: http://microservice-administration

# dbmigrator
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://microservice-blazor/
      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  

kibana:
  config:
    elasticsearchUrl: http://microservice-elasticsearch:9200
  ingress:
    host: kibana.staging.microservice.io
    tlsSecret: kibana-staging-microservice-io-tls

# Default values for microservice.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

replicaCount: 1

image:
  repository: nginx
  pullPolicy: IfNotPresent
  # Overrides the image tag whose default is the chart appVersion.
  tag: ""

imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""

serviceAccount:
  # Specifies whether a service account should be created
  create: true
  # Annotations to add to the service account
  annotations: {}
  # The name of the service account to use.
  # If not set and create is true, a name is generated using the fullname template
  name: ""

podAnnotations: {}

podSecurityContext: {}
  # fsGroup: 2000

securityContext: {}
  # capabilities:
  #   drop:
  #   - ALL
  # readOnlyRootFilesystem: true
  # runAsNonRoot: true
  # runAsUser: 1000

service:
  type: ClusterIP
  port: 80

# ingress:
#   enabled: false
#   className: ""
#   annotations: {}
#     # kubernetes.io/ingress.class: nginx
#     # kubernetes.io/tls-acme: "true"
#   hosts:
#     - host: chart-example.local
#       paths:
#         - path: /
#           pathType: ImplementationSpecific
#   tls: []
#   #  - secretName: chart-example-tls
#   #    hosts:
#   #      - chart-example.local

resources: {}
  # We usually recommend not to specify default resources and to leave this as a conscious
  # choice for the user. This also increases chances charts run on environments with little
  # resources, such as Minikube. If you do want to specify resources, uncomment the following
  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  # limits:
  #   cpu: 100m
  #   memory: 128Mi
  # requests:
  #   cpu: 100m
  #   memory: 128Mi

autoscaling:
  enabled: false
  minReplicas: 1
  maxReplicas: 100
  targetCPUUtilizationPercentage: 80
  # targetMemoryUtilizationPercentage: 80

tolerations: []

affinity: {}

Thanks gterdem,

I don't think that is related to Azure? I am no expert, but when looking at the k8s directory, it seems that most of it is in place? I guess its the installation of cert-manager and nginx ingress (for instance) and the issuer manifests. Also adding ingress part for all services.

I will try to make it work by my self, but the abp really need some deployment guides. We was failing to deploy abp framework too, and now we are trying the commercial one.

  • ABP Framework version: v7.3.3
  • 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: N/A

Can you provide any short guide / tutorial of how to deploy the Microservice template in a Kubernetes cluster with real domain names?

Prerequisites:

  • ABP commecial license
  • A Kubernetes cluster with a minimum specification to host the microservice template pods.
  • A domain name with access to add A records for managing sub-domains (e.g., abp-microservice-tutorial.io, auth.abp-microservice-tutorial.io, ..)

Thanks, Carl

Näytetään 21 - 29/29 tietueesta
Made with ❤️ on ABP v8.2.0-preview Updated on maaliskuuta 25, 2024, 15.11