2

I have a ASP site which is working fine on Windows Server 2003 & IIS 6.0. I migrated to Windows Server 2012 R2 IIS 8.5

I am getting an error when it tries to connect to a database:

Provider cannot be found. It may not be properly installed

Error Details:
2014-11-05 10:33:06 10.30.62.21 POST _main.asp |50|800a0e7a|Provider_cannot_be_found._It_may_not_be_properly_installed. 80 - XX.XX.XX.XX Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+WOW64;+Trident/5.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+.NET4.0C;+.NET4.0E;+.NET+CLR+1.1.4322;+InfoPath.3) /bottomright.asp?sAction=assist 500 0 0 1859

My connection string is as below:

GetConnectionString = "Provider=SQLNCLI.1;Data Source=" & m_DALServer & _
                      ";User Id=user;Password=pwd;Connect Timeout=3;"

I have checked the ODBC Data Source Administrator (32 bit) on new server(2012) and found below two related drivers

  1. SQL Native Client 2005.90.4035.00 Microsoft Corporation SQLNCLI.DLL
  2. SQL Server 6.03.9600.163.84 Microsoft Corporation SQLSRV32.DLL

I have enabled my app pool to 32 bit and Managed Pipeline to Classic.

Ansgar Wiechers
  • 193,178
  • 25
  • 254
  • 328
Hardik
  • 21
  • 1
  • 4

2 Answers2

0

Try SQLCNCLI and SQLOLEDB as your data provider.
These are both OLEDB drivers, rather than ODBC.

Here's a list of the connection strings for each version of SQL from http://www.connectionstrings.com/sql-server/:

  • SQLNCLI     - for SQL Server 2005
  • SQLNCLI10 - for SQL Server 2008
  • SQLNCLI11 - for SQL Server 2012
KyleMit
  • 30,350
  • 66
  • 462
  • 664
John
  • 4,658
  • 2
  • 14
  • 23
  • Hello John, The application is working with **SQLNCLI**, but in my existing environment it is running with **SQLNCLI.1**, Is is possible to make the same app running on new server with **SQLNCLI.1**? Will any patches or installation work on the server? – Hardik Nov 07 '14 at 12:38
  • You've clearly found the answer yourself. As you have discovered, there are different versions of Native Client, and which one to use in your connstring depends on which is installed on your server. If no version of Native Client is installed, (which is often the case if the server is connecting to a remote database) then SQLOLEDB will almost certainly be there as a fallback. NB On a 64 bit machine, you should find that 64 bit versions of the drivers are also installed – John Nov 07 '14 at 17:37
0

Some drivers where installed by Tech Support Team. Which drivers I am not sure. But because of the patches I saw SQL Server Native Client 10 available in ODBC sources and my issue was resolved without any code change.

If any one having same problem kindly check if the correct drivers are installed on the server. You can also verify by going to ODBC Sources(32 bit) and check if the SQL Server Native Client 10 is available.

Thanks all for your time.

Hardik
  • 21
  • 1
  • 4