Article ID: 905618 - View products that this article applies to.
You may receive a connection error message if the following conditions are true:
In this scenario, the protocol-specific information depends on the information that is returned by the server. For example, you may receive the following error message when you connect to an instance by using the Sqlcmd utility (Sqlcmd.exe):
SQL Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].
Sqlcmd: Error: Microsoft SQL Native Client : Client unable to establish connection.
Sqlcmd: Error: Microsoft SQL Native Client : Login timeout expired.
When you try to connect to an instance of SQL Server 2000 or of SQL Server 7.0, the SQL Server Browser service (Sqlbrowser) will try to obtain the required protocol information from the Microsoft Windows registry to relay to the client. Therefore, the SQL Server Browser service must have sufficient permissions to read the appropriate Windows registry for the instance.
When you set up SQL Server 2005, the registry keys for all existing instances are modified to enable the SQL Server Browser service to read the required protocol information. However, if you install an instance of SQL Server 2000 or of SQL Server 7.0 after you set up SQL Server 2005, the correct registry permissions are not set. The permissions are only modified when the SQL Server Browser service is installed. Specifically, if the startup account of the SQL Server Browser service is not an Administrators account, this account may not have the required access permissions to read the relevant keys of the instance.
Note In SQL Server 2000, the SQL Server service identifies the server connection endpoints. SQL Server 2005 replaces that function with the SQL Server Browser service. If you install SQL Server 2005 on a computer that is also running SQL Server 2000, you must install SQL Server 2000 Service Pack 3 (SP3), SQL Server 2000 SP3a, or SQL Server 2000 SP4 on that computer.
Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756You can use one of the following methods to work around this problem.
(http://support.microsoft.com/kb/322756/ )How to back up and restore the registry in Windows
Modify the registry to grant read permissions to specific keysFor each instance of SQL Server 2000 that you installed after you installed SQL Server 2005, follow these steps:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName>\SuperSocketNetLibregistry subkey is not inherited, you must manually modify the underlying keys for this registry subkey.
Note SQL Server 7.0 did not have named instances. Therefore, the relevant registry key should have inherited the appropriate permission from the
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServerregistry subkey. However, if the permission has not been inherited, you must manually set the permission.
Explicitly specify the connection information in the connection stringWhen you connect to an instance of SQL Server 2000 or of SQL Server 7.0 from the client, you can explicitly specify the connection information in the connection string. You specify this information so that the connection information is not dependent on the information being returned by the server. For example, you can connect to the instance by using the command that similar to the following command when you use the Sqlcmd utility.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
Article ID: 905618 - Last Review: March 10, 2006 - Revision: 3.4