OPCFoundation / UA-CloudLibrary

OPC UA Information Model database with a REST and GraphQL interface, as well as user management. The global instance of this (hosted by the OPC Foundation) can be found at https://uacloudlibrary.opcfoundation.org.
Other
39 stars 18 forks source link

3 simple steps ... #118

Closed marchandpatrick closed 2 years ago

marchandpatrick commented 2 years ago

follow up of

https://github.com/OPCFoundation/UA-CloudLibrary/issues/90#issue-1177703887

I tested latest version monday june 20th:

1) check that postgress docker container is correctly installed

docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2cee80b897c7 dpage/pgadmin4 "/bin/sh -c '/bin/ec…" 42 minutes ago Up 41 minutes 443/tcp, 0.0.0.0:8080->80/tcp ua-cloudlibrary_pgadmin_1 1d1289dc6b9c postgres "docker-entrypoint.s…" 2 months ago Up About an hour 5432/tcp ua-cloudlibrary_db_1 PS C:\Users\marchand\source\repos\UA-Cloudlibrary> docker exec -it 1d1 /bin/bash root@1d1289dc6b9c:/# psql -d uacloudlib -U uacloudlib -W Password: psql (14.2 (Debian 14.2-1.pgdg110+1)) Type "help" for help.

uacloudlib-# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ------------+------------+----------+------------+------------+--------------------------- postgres | uacloudlib | UTF8 | en_US.utf8 | en_US.utf8 | template0 | uacloudlib | UTF8 | en_US.utf8 | en_US.utf8 | =c/uacloudlib + | | | | | uacloudlib=CTc/uacloudlib template1 | uacloudlib | UTF8 | en_US.utf8 | en_US.utf8 | =c/uacloudlib + | | | | | uacloudlib=CTc/uacloudlib uacloudlib | uacloudlib | UTF8 | en_US.utf8 | en_US.utf8 | (4 rows)

2) Run container as instructed:

PS C:\Users\marchand\source\repos\UA-Cloudlibrary> docker run -e PostgreSQLUsername="uacloudlib" -e PostgreSQLPassword="uacloudlib" -e PostgreSQLEndpoint="ua-cloudlibrary_db_1" -p 80:80 ghcr.io/opcfoundation/ua-cloudlibrary:latest Unable to find image 'ghcr.io/opcfoundation/ua-cloudlibrary:latest' locally latest: Pulling from opcfoundation/ua-cloudlibrary 42c077c10790: Pull complete 87ed72daf751: Pull complete 5873b5a7554b: Pull complete 016563de4cce: Pull complete 3ce4f4cca166: Pull complete 33d03e70204d: Pull complete 4f4fb700ef54: Pull complete ec8ced126251: Pull complete Digest: sha256:fac10d9f0fb76de9a11e1720ab4b5c617b3d945d5c4df7fa5ae5209547182749 Status: Downloaded newer image for ghcr.io/opcfoundation/ua-cloudlibrary:latest WARNING: Using local filesystem for storage as HostingPlatform environment variable not specified or invalid! warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60] Storing keys in a directory '/app' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed. warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] No XML encryptor configured. Key {188a933f-b78b-4a82-90f1-f6f16efd5555} may be persisted to storage in unencrypted form. crit: Microsoft.AspNetCore.Hosting.Diagnostics[6] Application startup exception System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (00000005, 0xFFFDFFFF): Name or service not known at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, ValueStopwatch stopwatch) at System.Net.Dns.GetHostAddresses(String hostNameOrAddress, AddressFamily family) at Npgsql.Internal.NpgsqlConnector.Connect(NpgsqlTimeout timeout) at Npgsql.Internal.NpgsqlConnector.RawOpen(SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.gOpenCore|191_1(NpgsqlConnector conn, SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.UnpooledConnectorSource.Get(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.NpgsqlConnection.g__OpenAsync|45_0(Boolean async, CancellationToken cancellationToken) at Npgsql.NpgsqlConnection.Open() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternal(Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected) at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.Exists(Boolean async, CancellationToken cancellationToken) at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.Exists(Boolean async, CancellationToken cancellationToken) at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.Exists() at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists() at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration) at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(DatabaseFacade databaseFacade) at Opc.Ua.Cloud.Library.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env, AppDbContext appDbContext) in /src/UACloudLibraryServer/Startup.cs:line 205 at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>cDisplayClass4_0.b0(IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>cDisplayClass15_0.b1(IApplicationBuilder app) at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>cDisplayClass0_0.gMiddlewareFilterBuilder|0(IApplicationBuilder builder) at Microsoft.AspNetCore.HostFilteringStartupFilter.<>cDisplayClass0_0.b0(IApplicationBuilder app) at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) Unhandled exception. System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (00000005, 0xFFFDFFFF): Name or service not known at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, ValueStopwatch stopwatch) at System.Net.Dns.GetHostAddresses(String hostNameOrAddress, AddressFamily family) at Npgsql.Internal.NpgsqlConnector.Connect(NpgsqlTimeout timeout) at Npgsql.Internal.NpgsqlConnector.RawOpen(SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.gOpenCore|191_1(NpgsqlConnector conn, SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.UnpooledConnectorSource.Get(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.NpgsqlConnection.gOpenAsync|45_0(Boolean async, CancellationToken cancellationToken) at Npgsql.NpgsqlConnection.Open() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternal(Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected) at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.Exists(Boolean async, CancellationToken cancellationToken) at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.Exists(Boolean async, CancellationToken cancellationToken) at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.Exists() at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists() at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration) at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(DatabaseFacade databaseFacade) at Opc.Ua.Cloud.Library.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env, AppDbContext appDbContext) in /src/UACloudLibraryServer/Startup.cs:line 205 at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.b0(IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>cDisplayClass15_0.b1(IApplicationBuilder app) at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>cDisplayClass0_0.gMiddlewareFilterBuilder|0(IApplicationBuilder builder) at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.b__0(IApplicationBuilder app) at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host) at Opc.Ua.Cloud.Library.Program.Main(String[] args) in /src/UACloudLibraryServer/Program.cs:line 39 PS C:\Users\marchand\source\repos\UA-Cloudlibrary>

One critical error

Same results replacing -e PostgreSQLEndpoint="ua-cloudlibrary_db_1" by -e PostgreSQLEndpoint="1b1" (postgres container id) or -e PostgreSQLEndpoint="db" (postgres container name)

Please check if I have done something incorrectly.

barnstee commented 2 years ago

Can you double check your PostgreSQL endpoint, since you have specified PostgreSQLEndpoint="ua-cloudlibrary_db_1", which looks like the name of the container and the actual endpoint should be "localhost" with the PostgreSQL endpoint port exposed on the host, see https://betterprogramming.pub/connect-from-local-machine-to-postgresql-docker-container-f785f00461a7

marchandpatrick commented 2 years ago

New experimentation with recommended endpoint:

1> restart postgres:

PS C:\Users\marchand\source\repos\UA-Cloudlibrary> cat .\postgres.yml version: '3.4'

services:

db: image: postgres restart: always environment: POSTGRES_PASSWORD: uacloudlib POSTGRES_USER: uacloudlib POSTGRES_DB: uacloudlib ports:

PS C:\Users\marchand\source\repos\UA-Cloudlibrary> docker-compose -f .\postgres.yml up -d --remove-orphans

PS C:\Users\marchand\source\repos\UA-Cloudlibrary> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 35841f78df05 postgres "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:5432->5432/tcp ua-cloudlibrary_db_1PS C:\Users\marchand\source\repos\UA-Cloudlibrary>

2> Launch UA-cloudlibrary with endpoint localhost:5432

                                             >  docker run -e PostgreSQLUsername="uacloudlib" -e PostgreSQLPassword="uacloudlib" -e PostgreSQLEndpoint="localhost:5432" -p 80:80 ghcr.io/opcfoundation/ua-cloudlibrary:latest

WARNING: Using local filesystem for storage as HostingPlatform environment variable not specified or invalid! warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60] Storing keys in a directory '/app' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed. warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] No XML encryptor configured. Key {8c0aa67a-60d2-4aaf-ba16-17d3289fdbe6} may be persisted to storage in unencrypted form.

crit: Microsoft.AspNetCore.Hosting.Diagnostics[6]

  Application startup exception
  Npgsql.NpgsqlException (0x80004005): Failed to connect to [::1]:5432
   ---> System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (99): Cannot assign requested address [::1]:5432
     at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
     at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
     at Npgsql.Internal.NpgsqlConnector.Connect(NpgsqlTimeout timeout)
     at Npgsql.Internal.NpgsqlConnector.Connect(NpgsqlTimeout timeout)
     at Npgsql.Internal.NpgsqlConnector.RawOpen(SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
     at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|191_1(NpgsqlConnector conn, SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
     at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
     at Npgsql.UnpooledConnectorSource.Get(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
     at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|45_0(Boolean async, CancellationToken cancellationToken)
     at Npgsql.NpgsqlConnection.Open()
     at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected)
     at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternal(Boolean errorsExpected)
     at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected)
     at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.Exists(Boolean async, CancellationToken cancellationToken)
     at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.Exists(Boolean async, CancellationToken cancellationToken)
     at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.Exists()
     at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists()
     at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
     at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(DatabaseFacade databaseFacade)
     at Opc.Ua.Cloud.Library.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env, AppDbContext appDbContext) in /src/UACloudLibraryServer/Startup.cs:line 205
     at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
     at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
     at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder)
     at Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.<Build>b__0(IApplicationBuilder builder)
     at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass15_0.<UseStartup>b__1(IApplicationBuilder app)
     at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.<Configure>g__MiddlewareFilterBuilder|0(IApplicationBuilder builder)
     at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)
     at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)

Unhandled exception. Npgsql.NpgsqlException (0x80004005): Failed to connect to [::1]:5432 ---> System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (99): Cannot assign requested address [::1]:5432 at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.Connect(EndPoint remoteEP) at Npgsql.Internal.NpgsqlConnector.Connect(NpgsqlTimeout timeout) at Npgsql.Internal.NpgsqlConnector.Connect(NpgsqlTimeout timeout) at Npgsql.Internal.NpgsqlConnector.RawOpen(SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.gOpenCore|191_1(NpgsqlConnector conn, SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.UnpooledConnectorSource.Get(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) at Npgsql.NpgsqlConnection.g__OpenAsync|45_0(Boolean async, CancellationToken cancellationToken) at Npgsql.NpgsqlConnection.Open() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternal(Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected)
at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.Exists(Boolean async, CancellationToken cancellationToken) at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.Exists(Boolean async, CancellationToken cancellationToken) at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.Exists()
at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists() at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration) at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(DatabaseFacade databaseFacade) at Opc.Ua.Cloud.Library.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env, AppDbContext appDbContext) in /src/UACloudLibraryServer/Startup.cs:line 205 at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c
DisplayClass4_0.b0(IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>cDisplayClass15_0.b1(IApplicationBuilder app) at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>cDisplayClass0_0.gMiddlewareFilterBuilder|0(IApplicationBuilder builder) at Microsoft.AspNetCore.HostFilteringStartupFilter.<>cDisplayClass0_0.b__0(IApplicationBuilder app) at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host) at Opc.Ua.Cloud.Library.Program.Main(String[] args) in /src/UACloudLibraryServer/Program.cs:line 39 PS C:\Users\marchand\source\repos\UA-Cloudlibrary>

=> critical error above.

3> New test specifying ip instead of local host

PS C:\Users\marchand\source\repos\UA-Cloudlibrary> ipconfig

Configuration IP de Windows

Carte Ethernet Instance Ethernet 0 :

Suffixe DNS propre à la connexion. . . : Adresse IPv6 de liaison locale. . . . .: fe80::ad9a:2351:27a3:87be%9 Adresse IPv4. . . . . . . . . . . . . .: 192.168.1.34 Masque de sous-réseau. . . . . . . . . : 255.255.255.0 Passerelle par défaut. . . . . . . . . : 192.168.1.1

PS C:\Users\marchand\source\repos\UA-Cloudlibrary>

docker run -e PostgreSQLUsername="uacloudlib" -e PostgreSQLPassword="uacloudlib" -e PostgreSQLEndpoint="192.168.1.34:5432" -p 80:80 ghcr.io/opcfoundation/ua-cloudlibrary:latest

WARNING: Using local filesystem for storage as HostingPlatform environment variable not specified or invalid! warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60] Storing keys in a directory '/app' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed. warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] No XML encryptor configured. Key {3977d190-d8cd-4ff1-bc37-388967ee5839} may be persisted to storage in unencrypted form. info: Microsoft.Hosting.Lifetime[14] Now listening on: http://[::]:80 info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down. info: Microsoft.Hosting.Lifetime[0] Hosting environment: Production info: Microsoft.Hosting.Lifetime[0] Content root path: /app

and in browser

localhost

It works!

UAcloudlibraryaccess

Thanks for help

barnstee commented 2 years ago

Great! :-)