ASP classique Microsoft OLE DB Provider for ODBC Drivers erreur '80004005'

Je suis en train de travailler sur la migration d'une application à partir d'un IIS 6 de IIS 7.5 et je suis en cours d'exécution dans le plus étrange question:

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 

Voici le code autour de la ligne 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

Rien de spécial qui se passe ici...

voici la db méthode:

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

Cela semble fonctionner dans un semblable asp classique de l'application s'exécutant dans le même pool d'applications (.NET 1.1)

J'ai essayé: le copier-coller l'autre application du code, à l'aide de la chaîne de connexion à la place de la db méthode (jette 500 de cours), la modification des pools d'applications, google, & comme un autre coup de pied, il fonctionne très bien sur un serveur IIS 6.

J'ai pris un coup d'oeil à OLE DB Provider for ODBC Drivers Erreur "80004005' & ma chaîne de connexion semble correcte & mon ASP.NET 1.1 pool d'application peut fonctionner qu'en mode 32 bits. La Dsn mis en place sur le serveur précédent ne sont pas pertinente.

J'ai la demande de travail sur IIS 5 sur le domaine A et IIS 6 sur Un domaine, mais cette 7.5 serveur est sur le domaine B. Donc je suis en utilisant le nom de domaine complet. Je n'ai pas fait n'importe quel autre domaine spécifique des changements si. Le système utilise la méthode ci-dessus pour authentifier les utilisateurs.

Edit: aussi essayé

strConnection = "dsn=my32bitdsn;uid=xxx;pwd=xxx;"

J'ai hérité de ce code et je suis donc, avec l'ASP classique, quelqu'un peut-il aider?

Code mis à jour:

  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)
  • D'autres choses que j'ai essayé: mise en place de 32 bits de la DSN et de préciser qu', l'activation de 32 bits mode dans IIS via applicationpoolDefaults. Je suis un pilote de l'incompatibilité d'une erreur sur le dsn que je fixe par activation de 32 bits uniquement pour revenir à l'original message d'erreur 🙁
  • Yep, tous les champs sont affectés.
  • Je vous assure que ce n'est pas la question.
  • les commentaires doivent encore être pertinent à la question.
  • Si je vous ai dit que je suis une vidange d'huile, qui ne serait pas pertinente pour la question.
  • l'esprit en se concentrant sur la réponse à la question? Je ne suis pas en posant cette question à débat SQL meilleures pratiques sur le code que j'ai hérité avec vous.
  • Vous êtes libre de refuser des conseils sur SQL meilleures pratiques; ne me dites pas que ce n'est pas pertinent à votre question.
  • À l'aide de colonnes au nom à la place de * ne résoudra pas un problème de pilote ODBC.
  • Bien évidemment, il ne sera pas. Vous avez besoin d'effectuer un rituel Païen pour que cela fonctionne. J'espère que quelqu'un sera en mesure de répondre à votre question ci-dessous.

InformationsquelleAutor RandomUs1r | 2013-04-23