Gå til innhold

ASP: [Løst]ODBC Driver error '80004005' på Win 7/IIS7.5/MySQL ODBC 3.51


Anbefalte innlegg

Edit: Jeg tar sjansen på å dobbeltposte denne, siden jeg ikke vet om det er et ASP eller et ODBC-problem.

 

Da har jeg installert vår ASP-kode (Classic, ikke .net) på min utviklingsmaskin med Windows 7 RC IIS 7.5, med lokal MySQL database. MySQL er versjon 5, ODBC driveren versjon 3.51.

 

Windows er 64-bit, MySQL og driver 32-bit.

 

Det har ikke gått helt knirkefritt. De fleste feil lot seg fikse med settings, (det kan jeg komme tilbake til ved anledning), men jeg får fortsatt ikke logget på MySQL. Jeg får denne meldingen på dbConn.Open:

 

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

 

Jeg har satt en Response.write i koden på variablelen som inneholder logon string, og den ser helt riktig ut. Versjonen av ODBC-driveren (3.51) er installert på maskinen og satt opp som DSN (både user og system, for sikkerhets skyld) i ODBC admin panelet.

 

Jeg kan se databasen med Navicat uten problemer, og har sjekket at databasebrukeren finnes og har rettigheter til databasen.

 

Samme koden kjører i produksjon og på andre utviklingsmaskiner. Noe mangler/er feil hos meg, eller så er det noe med Win 7 RC som feiler. Jeg har laget noen små testprogrammer som ikke prøver å logge på MySQL, og de kjører fint, så det virker som ASP-koden som sådan kjører greit.

 

Forslag til ting jeg kan prøve?

 

Geir :)

Lenke til kommentar
Videoannonse
Annonse

Etter mye grå hår og googling har jeg funnet svaret:

 

IIS under Windows 64 kjører som default ikke 32 bits applikasjoner. Løsningen er å gå inn på Application Pools i IIS og enable 32 bit applications (kan også settes med et cscript), og deretter gå inn på Handler mappings for websiden i IIS og angi at ASP skal bruke 32 bits versjonen av asp.dll.

 

Det som forvirret meg mest var navnet på mappene: System32 og sysWOW64. Man skulle tro at system32 er der hvor 32-bits driverne ligger, men det er stikk motsatt. MS har tydeligvis valgt å beholde det innarbeidede navnet på Systemmappen, så den heter system32 også på 64-bits Windows. Så har de laget den nye mappen som noe obskurt heter sysWOW64, som betyr "system Windows On Windows64".

 

Problemet er det samme på alle 64-bits versjoner av Windows, så folk som skal kjøre 32-bits applikasjoner under IIS på Server2003 eller Server2008 kan kanskje ha nytte av dette.

 

Geir :)

  • Liker 1
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...