Activities of "JimmyLiew"

Hi,

Appreciated your help. Thanks.

Hi, below the details of the exception. However, I found that after i have replaced the localhost to 127.0.0.1 in connection string then it's working. Is there any SQL configuration i have missed out in order to make this localhost works?

Server=127.0.0.1,1434; User Id=sa; Password=myPassw@rd; Database=Tenant-F; TrustServerCertificate=true

"Microsoft.Data.SqlClient.SqlException (0x80131904): Connection Timeout Expired.  The timeout period elapsed while attempting to consume the pre-login handshake acknowledgement.  This could be because the pre-login handshake failed or the server was unable to respond back in time.  The duration spent while attempting to connect to this server was - [Pre-Login] initialization=1044; handshake=0; \r\n ---> System.ComponentModel.Win32Exception (258): The wait operation timed out.\r\n   at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)\r\n   at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)\r\n   at Microsoft.Data.SqlClient.TdsParserStateObject.ThrowExceptionAndWarning(Boolean callerHasConnectionLock, Boolean asyncClose)\r\n   at Microsoft.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)\r\n   at Microsoft.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync()\r\n   at Microsoft.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket()\r\n   at Microsoft.Data.SqlClient.TdsParser.ConsumePreLoginHandshake(SqlConnectionEncryptOption encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean& marsCapable, Boolean& fedAuthRequired, Boolean tlsFirst, String serverCert)\r\n   at Microsoft.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnectionString connectionOptions, Boolean withFailover)\r\n   at Microsoft.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover)\r\n   at Microsoft.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout)\r\n   at Microsoft.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance)\r\n   at Microsoft.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String accessToken, DbConnectionPool pool)\r\n   at Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)\r\n   at Microsoft.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)\r\n   at Microsoft.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)\r\n   at Microsoft.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)\r\n   at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)\r\n   at Microsoft.Data.ProviderBase.DbConnectionPool.WaitForPendingOpen()\r\n--- End of stack trace from previous location ---\r\n  

Hi, I tested connection string below. Server=localhost,1434; User Id=sa; Password=myPassw@rd; Database=Tenant-F; TrustServerCertificate=true

The check connection string API was returning false. I could not found any exception shown in saas log.file. Attached the log info for your reference.

2024-10-11 16:56:58.605 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44355/api/saas/demo/check?connectionstring=Server%3Dlocalhost%2C1434%3B%20User%20Id%3Dsa%3B%20Password%3DmyPassw%40rd%3B%20Database%3DTenant-F%3B%20TrustServerCertificate%3Dtrue - null null
2024-10-11 16:56:58.609 +08:00 [INF] Executing endpoint 'AbpMultiTenant.SaasService.Controllers.DemoController.CheckConnectionString (AbpMultiTenant.SaasService)'
2024-10-11 16:56:58.609 +08:00 [INF] Route matched with {action = "CheckConnectionString", controller = "Demo", area = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[System.String] CheckConnectionString(System.String) on controller AbpMultiTenant.SaasService.Controllers.DemoController (AbpMultiTenant.SaasService).
2024-10-11 16:56:59.633 +08:00 [INF] Executing ObjectResult, writing value of type 'System.String'.
2024-10-11 16:56:59.634 +08:00 [INF] Executed action AbpMultiTenant.SaasService.Controllers.DemoController.CheckConnectionString (AbpMultiTenant.SaasService) in 1024.905ms
2024-10-11 16:56:59.634 +08:00 [INF] Executed endpoint 'AbpMultiTenant.SaasService.Controllers.DemoController.CheckConnectionString (AbpMultiTenant.SaasService)'
2024-10-11 16:56:59.635 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44355/api/saas/demo/check?connectionstring=Server%3Dlocalhost%2C1434%3B%20User%20Id%3Dsa%3B%20Password%3DmyPassw%40rd%3B%20Database%3DTenant-F%3B%20TrustServerCertificate%3Dtrue - 200 null text/plain; charset=utf-8 1029.7245ms
2024-10-11 16:57:00.683 +08:00 [INF] Request starting HTTP/1.1 GET http://host.docker.internal:44355/metrics - null null
2024-10-11 16:57:00.685 +08:00 [INF] Executing endpoint 'Prometheus metrics'
2024-10-11 16:57:00.690 +08:00 [INF] Executed endpoint 'Prometheus metrics'
2024-10-11 16:57:00.691 +08:00 [INF] Request finished HTTP/1.1 GET http://host.docker.internal:44355/metrics - 200 null application/openmetrics-text; version=1.0.0; charset=utf-8 8.1178ms

Hi, Thanks your prompt response. Invalid object name "AbpLanguageTexts" problem already solved. However still encountered "invalid Connection String" issue. And also found that, Login to this tenant option is missing. As i remember this option was there in previous version. May need your help to advise.

Thanks.

Hi, Already sent.

Hi, I have manually applied the code that you mentioned to services\saas\AbpMultiTenant.SaasService\AbpMultiTenantSaasServiceModule

It provides the option to set connection string for Identity module.

However, still encountered invalid connection string issue when click on Test connection string. And also encountered Invalid object name AbpLanguageTexts error when trying login with the new tenant i have created. I have checked AbpLanguageTexts table is existed in my tenant administrator database. Would like to get advise from you.

Hi, I have pulled the latest sql-server 2022 and run in container(Docker Desktop).Still having the same problem.

Docker command docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=myPassw@rd" -p 1434:1433 --name sql1 --hostname sql1 -d mcr.microsoft.com/mssql/server:2022-latest

Connection Strings Server=localhost,1434; User Id=sa; Password=myPassw@rd; Database=TestDB; TrustServerCertificate=true Server=localhost,1434; User Id=sa; Password=myPassw@rd; Database=TestDB;Encrypt=False

Hi, I have manually created a TestDB. Seem like still returned false.

Server=localhost,1434; User Id=sa; Password=myPassw@rd; Database=TestDB; TrustServerCertificate=true Server=localhost,1434; User Id=sa; Password=myPassw@rd; Database=TestDB;Encrypt=False

Hi, I have tried both connection strings below. Both were returned result as false.

Server=localhost,1434; User Id=sa; Password=myPassw@rd; Database=Tenant-A; TrustServerCertificate=true

Server=localhost,1434; User Id=sa; Password=myPassw@rd; Database=Tenant-A;Encrypt=False

Hi,

I have checked and confirmed the connection string below is accessible by SQL SSMS.

Server=localhost,1434; User Id=sa; Password=myPassw@rd; Database=Tenant-A; TrustServerCertificate=true

I have tried to call the check connection API by passing above connection string as input parameter, but unfortunately is was returning False. Seem like could not find any hints from saas log file.

Would you advise is there any configuration that I have possible missed out? Do you mind to remote my PC to check?

Showing 1 to 10 of 25 entries
Made with ❤️ on ABP v9.1.0-preview. Updated on December 13, 2024, 06:09