1

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)
4

2 に答える 2

0

このエラーを既に解決したかどうかはわかりませんが、読み取り可能なエラーをスローするようにしたい場合は、接続文字列の一部としてこれを試すことができます。

  1. あなたの接続文字列は、dbサーバーがserver.domain.comであると言っていますか、それとも会社情報を置き換えるためにそこに配置しただけですか?

  2. これを試してください:

    dim cn
    Set cn=Server.CreateObject("ADODB.Connection")
    cn.ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Initial Catalog=dbName;Data Source=(local) or computername;PWD=;Password=yourpassword;"
    on error resume next
    cn.Open
    if err.number <> 0 then response.Write(err.description) 
    on error goto 0
    
于 2013-07-03T16:24:41.370 に答える