将网站从IIS6迁移到IIS7后,经典的asp数据库连接出错

时间:2012-10-20 13:26:18

标签: sql-server sql-server-2005 iis-7 asp-classic adodb

我有一个经典的asp站点,它具有以下数据库连接:

<%
set objConnection = Server.CreateObject("ADODB.Connection")
objConnection.ConnectionString = "Driver={SQL Server};Server=123.456.789.012;Database=mydatabase;Uid=myuser;Pwd=123xyz;"
objConnection.Open
%>

该网站刚刚从运行IIS6的Windows 2003服务器迁移到运行IIS7的Windows 2008服务器(均使用MSSQL 2005 Express数据库),现在它提供了一条错误消息:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][DBNETLIB]Invalid connection.
/inc/dbconnection.asp, line 4 

我假设是因为IIS7有不同的驱动程序?什么是更新的连接字符串,以使其工作 - 我用谷歌搜索,只是找不到任何有效或有意义的东西(我在理解的边缘,说实话!)

非常感谢任何人们......

2 个答案:

答案 0 :(得分:4)

您正在尝试为SQL Server调用ODBC驱动程序,该驱动程序传统上由MDAC提供。我可能会使用其中一个SQL Server Native Client驱动程序,而不是尝试在IIS7中对其进行故障排除,如:

"Driver={SQL Native Client};..."

"Provider=SQLNCLI10;..."

有些历史记录可以在MSDN找到,其他连接字符串选项和信息可以在网站connectionstrings.com找到。

答案 1 :(得分:0)

如果数据库与网站位于同一服务器上,并且MSSQL 2005 Express数据库不是命名实例,则可以使用以下数据源:

<%
set objConnection = Server.CreateObject("ADODB.Connection")
objConnection.ConnectionString = "Provider=SQLOLEDB; Data Source=(local); Initial Catalog=mydatabase; User ID=myuser;"
objConnection.Open
%>

如果您使用默认实例名称“sqlexpress”在本地安装了MSSQL 2005 Express,那么您将需要使用以下数据源

<%
set objConnection = Server.CreateObject("ADODB.Connection")
objConnection.ConnectionString = "Provider=SQLOLEDB; Data Source=.\sqlexpress; Initial Catalog=mydatabase; User ID=myuser;"
objConnection.Open
%>