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をスローします)、アプリプール、Googleを変更し、IIS 6サーバーでうまく機能します。
OLE DB Provider for ODBC Drivers エラー "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)