I looked into bunch of similar questions but haven't find a solution for my problem. I have this error:
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=501; handshake=29876; (.Net SqlClient Data Provider)
I try to connect remote SQL Server instance from my dev machine via SSMS, specify ip address, not domain name. Tried all combinations of connection options.
Things I already checked:
- not a problem with DNS because I use IP address
- me and server supports similar network protocol
- server is running, SQL Browser is running, server name and credentials are correct
- my dev machine supports all versions of security protocols (e.g. TLS 1.2) and ciphers
- I checked option "trust server certificate"
- tried set a big timeout like 5 mins and got a little different error:
A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 0 - The semaphore timeout period has expired.) (.Net SqlClient Data Provider)
In my opinion such kinds of errors mean that something wrong with security stuff. All network problems and firewall restrictions should not be a reason.
I'm sure that the server configured correctly because other developers don't have such problem with the same server. And version of my SSMS is not older than others.