Fehlermeldung beim Anfordern eine ASP Seite, die eine Verbindung mit einer Access-Datenbank in IIS 7.0: "Fehler '80004005 ' bei Microsoft JET-Datenbankmodul"

Wichtig Dieser Artikel enthält Informationen dazu, wie Sie Sicherheitseinstellungen herabsetzen oder Sicherheitsfunktionen auf einem Computer deaktivieren können. Sie können diese Änderungen vornehmen, um ein bestimmtes Problem zu umgehen. Bevor Sie diese Änderungen vornehmen, empfehlen wir, dass Sie die Risiken abschätzen, die mit dieser Problemumgehung in Ihrer speziellen Umgebung verbunden sind. Wenn Sie diese Lösung implementieren, ergreifen Sie entsprechenden Maßnahmen zum Schutz des Computers.

Problembeschreibung

Das folgende Szenario. Auf einem Webserver, der Microsoft-Internetinformationsdienste (IIS) 7.0 ausgeführt wird, hosten Sie eine active Server Page (ASP), die mit einer Datenbank verbunden. Die ASP-Seite-Datenprovider ist Microsoft.Jet.OLEDB.4.0-Datenanbieter. Die Datenquelle der ASP-Seite ist eine Microsoft Access-Datenbankdatei (.mdb). In diesem Szenario erhalten Sie folgende Fehlermeldung, wenn die ASP-Seite anfordern:
Microsoft JET-Datenbankmodul-Fehler "80004005"

Nicht spezifizierter Fehler
Hinweis Sie werden eine ähnliche Fehlermeldung auftreten, wenn Sie Folgendes verwenden:
  • Microsoft Access-Datenbank in das Access 2007-Dateiformat (ACCDB)
  • Microsoft.ACE.OLEDB.12.0-Datenanbieter

Ursache

Dieses Problem kann auftreten, wenn IIS 7.0 laden das Profil des aktuellen Benutzers für eine Identität für den Anwendungspool konfiguriert. Kompatibilitätsprobleme kann mit Legacyanwendungen ASP-basierten und ADO-basierte Anwendung dadurch, da der aktuelle Benutzer möglicherweise nicht über ausreichende Berechtigungen zum Schreiben in das temporäre Verzeichnis.

Problemlösung

Um dieses Problem zu beheben, müssen Sie die richtigen Einträge in das temporäre Verzeichnis für die Prozessidentität hinzufügen. Führen Sie hierzu die Schritte für Ihr Betriebssystem.

Windows Server 2008 und Windows Vista mit SP1 oder höher

Zum Beheben dieses Problems auf IIS 7.0-Webserver, der auf Windows Server 2008 oder Windows Vista mit SP1 oder höher ausgeführt wird, gehen Sie folgendermaßen vor:
  1. Klicken Sie auf Start, Alle Programme, Zubehör, Rechtsklick Befehlszeile und klicken Sie dann auf als Administrator ausführen.
  2. Wenn Sie ein Administratorkennwort oder eine Bestätigung aufgefordert werden, geben Sie das Kennwort ein oder klicken Sie auf Weiter.
  3. Geben Sie den folgenden Befehl ein, und drücken Sie die EINGABETASTE:
    Icacls %SystemDrive%\Windows\Temp/GRANT Users:(CI)(S,WD,AD,X)

    Hinweis Mit diesem Befehl können alle Benutzer auf Dateien und Verzeichnisse im temporären Verzeichnis erstellen.
  4. Geben Sie den folgenden Befehl ein, und drücken Sie die EINGABETASTE:
    Icacls %SystemDrive%\Windows\Temp/GRANT "Ersteller OWNER":(OI)(CI)(IO)(F)

    Hinweis Eine Datei oder ein Verzeichnis im temporären Verzeichnis erstellt Benutzer ist der Ersteller-Besitzer. Der Ersteller-Besitzer-ACE gewährt eine Benutzer die vollständige Kontrolle über die Datei oder das Verzeichnis. Andere Benutzer zugreifen nicht diese Dateien und Verzeichnisse, weil sie nicht der Ersteller-Besitzer.
Windows Vista RTM

Zum Beheben dieses Problems auf IIS 7.0-Webserver, auf dem Windows Vista RTM ausgeführt wird, gehen Sie folgendermaßen vor:
Hinweis Standardmäßig auf Windows Vista RTM die Prozessidentität ist NetworkService und das temporäre Verzeichnis ist % windir%\ServiceProfiles\NetworkService\AppData\Local\Temp.
  1. Klicken Sie auf Start, Alle Programme, Zubehör, Rechtsklick Befehlszeile und klicken Sie dann auf als Administrator ausführen.
  2. Wenn Sie ein Administratorkennwort oder eine Bestätigung aufgefordert werden, geben Sie das Kennwort ein oder klicken Sie auf Weiter.
  3. Geben Sie den folgenden Befehl ein, und drücken Sie die EINGABETASTE:
    Icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp/GRANT Users:(CI)(S,WD,AD,X)

    Hinweis Mit diesem Befehl können alle Benutzer auf Dateien und Verzeichnisse im temporären Verzeichnis erstellen.
  4. Geben Sie den folgenden Befehl ein, und drücken Sie die EINGABETASTE:
    Icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp/GRANT "Ersteller OWNER":(OI)(CI)(IO)(F)

    Hinweis Eine Datei oder ein Verzeichnis im temporären Verzeichnis erstellt Benutzer ist der Ersteller-Besitzer. Der Ersteller-Besitzer-ACE gewährt eine Benutzer vollständige Kontrolle über die Datei oder das Verzeichnis. Andere Benutzer zugreifen nicht diese Dateien und Verzeichnisse, weil sie nicht der Ersteller-Besitzer.

PROBLEMUMGEHUNG

Verwenden Sie zum Beheben dieses Problems beschriebenen Methode im Abschnitt "Lösung". Jedoch wenn Sie nicht in das temporäre Verzeichnis für die Prozessidentität Zugriffssteuerungseinträge hinzufügen möchten, können Sie das Problem umgehen, indem LoadUserProfile -Eigenschaft für den Anwendungspool deaktiviert. Wenn diese Eigenschaft deaktiviert ist, wird IIS 7.0 nicht das Profil des aktuellen Benutzers für den Anwendungspool geladen.

Wichtig Wenn Sie diese Eigenschaft deaktivieren, kann ein Sicherheitsrisiko entstehen. Stellen Sie sicher, dass verstehen und bewerten Sie das Risiko ein, bevor Sie diese Lösung implementieren.

Deaktivieren Sie die LoadUserProfile -Eigenschaft für den Anwendungspool ändern Sie die Datei ApplicationHost.config. Das folgende Beispiel veranschaulicht dies.
<applicationPoolDefaults>    <processModel identityType="NetworkService" loadUserProfile="false" />
</applicationPoolDefaults>

Referenzen

Weitere Informationen zum temporären Verzeichnisberechtigungen beim Ausführen einer Datenbankabfrage in eine ASP-Seite klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:

315456 Fehlermeldung eine Datenbank Ergebnisse beim Verbinden mit Datenbank von einer ASP-Seite in FrontPage

Mithilfe von klassischen ASP mit Microsoft Access-Datenbanken auf IIS 7.0 und IIS 7.5

http://learn.iis.net/page.aspx/563/using-classic-asp-with-microsoft-access-databases-on-iis-70-and-iis-75/
Eigenschaften

Artikelnummer: 926939 – Letzte Überarbeitung: 14.01.2017 – Revision: 1

Feedback