Connectivity to SQL server fails when "Network Library = dbmssocn" is used in addtion to having a TCP alias
I recently came across this interesting issue : The end customer was trying to connect to SQL server named instance from a Remote client machine via a asp.net application. The Server instance that he was connecting to already had a TCP alias on the client machine. In the connection string he was specifying "Network Library = dbmssocn". The application was failing in it's attempt when trying to connect to SQL server with the following error message :
Test connection failed because of an error in initializing provider. [DBNETLIB][ConnectionOpen (Connect()).]Specified SQL server not found.
When we collected the Network Monitor trace , we found that client was attempting to connect to SQL server on the UDP port 1434 rather than the TCP port 1433. While further probing into the issue , as soon as we removed the "Network Library = dbmssocn" from the application's connection string the application was able to connect to SQL server successfully.
To conclude on this issue , we found out that there was no requirement for the developers to specify the network library in the connection explicitly when they already had a TCP alias created for the SQL Server.