Bei der Migration von klassischen ASP-Anwendungen (.asp) auf einen IIS 7 (zb 2008 R2) kann (bzw. wird) es zu Problemen kommen, falls via ASP auf eine alte Access-DB zugegriffen wird.
Der Code dafür könnte zb so aussehen:
<%
set conn=server.createobject(“adodb.connection”)
‘ DSNlose Verbindung zu einer MS Access Datenbank
DSNtemp=”DRIVER={Microsoft Access Driver (*.mdb)}; “
DSNtemp=dsntemp & “DBQ=” & server.mappath(“db1.mdb”)
conn.Open DSNtemp
%>
Obiger Code führt grundsätzlich zu KEINER Fehlermeldung, sondern zu einem allgemeinen Hinweis (“An Error occurred…”), dass etwas mit den Code nicht stimmt…
Um detaillierte Fehlermeldungen zu aktivieren, muss man für den jeweilgen Ordner, in dem sich die Website befindet, folgendes aktivieren:
1.) Ordner auswählen
2.) auf das Icon “ASP” doppelklicken (falls nicht vorhanden, muss dieses nachinstalliert werden)
3.)
Nun bekommt man eine detaillierte Fehlermeldung, die wie folgt lautet:
Microsoft OLE DB Provider for ODBC Drivers error ’80004005′
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
Die Ursachen hierfür sind:
1.) per default hat der IUSR (anonyme Internetuser) KEINEN Zugriff auf die Datenbank
2.) die Datenbankverbindung wird über den 64-bit Treiber hergestellt – und funktioniert daher nicht mehr…
Lösung:
1.) im Windows Explorer auf die .mdb dem IUSR Schreibrechte einräumen (besser noch für den gesamten Ordner, in dem die DB liegt, da beim Öffnen auch eine .ldb angelegt wird)
2.) im DefaultAppPool 32-bit-Anwendungen aktivieren
Nicht vergessen: den IIS nach der Aktion einen Neustart gönnen…
Am Code muss danach nichts geändert werden!
Hallo,
also der Tipp war doch mal GOLD wert
Vielen Dank !
Gruß
Michael Montag