【发布时间】:2013-04-23 20:47:52
【问题描述】:
我正在将应用程序从 IIS 6 迁移到 IIS 7.5,但遇到了最奇怪的问题:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
/Complaints/Login.asp, line 175
这是第 175 行附近的代码:
myConn = getDatabaseConnection()
set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM Users WHERE lower(Login) = lower('" & uId & "') and Active = 1"
rs.Open strSQL, myConn, 3, 3
这里没什么特别的...
这是 db 方法:
function getDatabaseConnection()
Dim strConnection
strConnection = "Driver={SQL Server};Server=server.domain.com;Database=cc;uid=acc;pwd=xxx;"
Set GetDatabaseConnection = Server.CreateObject("ADODB.Connection")
GetDatabaseConnection.CommandTimeout = 60
GetDatabaseConnection.ConnectionTimeout = 60
GetDatabaseConnection.CursorLocation = 3
GetDatabaseConnection.Open strConnection
end function
这似乎适用于在同一应用程序池 (.NET 1.1) 中运行的类似经典 asp 应用程序
我尝试过:复制粘贴其他应用程序的代码,使用连接字符串代替 db 方法(当然抛出 500),更改应用程序池,谷歌,& 作为另一个踢它在 IIS 6 服务器上工作得很好.
我查看了OLE DB Provider for ODBC Drivers Error "80004005',我的连接字符串似乎正确,我的 ASP.NET 1.1 应用程序池只能在 32 位模式下运行。之前服务器上设置的 DSN 也不相关。
我的应用程序在域 A 上的 IIS 5 和域 A 上的 IIS 6 上运行,但是这个 7.5 服务器在域 B 上。因此我使用的是 FQDN。不过,我还没有进行任何其他特定于域的更改。系统使用上述方法对用户进行身份验证。
编辑:也尝试过
strConnection = "dsn=my32bitdsn;uid=xxx;pwd=xxx;"
我继承了这段代码,并且非常喜欢经典的 ASP,有人可以帮忙吗?
更新代码:
Dim strConnection, oConn
'get status
set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM Users WHERE lower(Login) = lower('" & uId & "') and Active = 1"
'rs.Open strSQL, myConn, 3, 3
strConnection = "Driver={SQL Server};Server=server.domain.com;Database=cc;uid=acc;pwd=xxx;"
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.CommandTimeout = 60
oConn.ConnectionTimeout = 60
oConn.CursorLocation = 3
oConn.Open strConnection
Set rs = oConn.Execute(strSQL)
【问题讨论】:
-
我尝试过的其他事情:设置 32 位 DSN 并指定它,通过 applicationpoolDefaults 在 IIS 中启用 32 位模式。我在 dsn 上遇到了驱动程序不兼容错误,我通过启用 32 位仅返回到原始错误消息来修复它:(
-
是的,所有的字段最终都被赋值了。
-
我向你保证,这不是问题。
-
您可以拒绝有关 SQL 最佳实践的建议;不要告诉我这与你的问题无关。
-
显然不会。您需要执行异教仪式才能使其起作用。希望有人能够在下面回答您的问题。
标签: iis asp-classic odbc database-connection