Μήνυμα λάθους όταν ζητάτε μια ASP σελίδας που συνδέεται με μια βάση δεδομένων της Access στο IIS 7.0: "Σφάλμα βάσεων δεδομένων Microsoft Jet '80004005'"

Σημαντικό Αυτό το άρθρο περιέχει πληροφορίες που σας δείχνουν τον τρόπο μείωσης των ρυθμίσεων ασφαλείας ή τον τρόπο απενεργοποίησης των δυνατοτήτων ασφαλείας σε έναν υπολογιστή. Μπορείτε να κάνετε αυτές τις αλλαγές για να αντιμετωπίσετε ένα συγκεκριμένο πρόβλημα. Πριν κάνετε αυτές τις αλλαγές, συνιστάται να εκτιμήσετε τους κινδύνους που σχετίζονται με την εφαρμογή αυτού του εναλλακτικού τρόπου αντιμετώπισης στο συγκεκριμένο περιβάλλον. Εάν εφαρμόσετε αυτόν τον εναλλακτικό τρόπο αντιμετώπισης, λάβετε τα κατάλληλα πρόσθετα μέτρα για την προστασία του υπολογιστή.

Συμπτώματα

Εξετάστε το ακόλουθο σενάριο. Σε ένα διακομιστή Web που εκτελεί τις υπηρεσίες Microsoft Internet Information Services (IIS) 7.0, μπορείτε να φιλοξενήσετε μια ενεργή σελίδα διακομιστή (ASP) που συνδέεται με μια βάση δεδομένων. Η υπηρεσία παροχής δεδομένων της σελίδας ASP είναι η υπηρεσία παροχής δεδομένων Microsoft.Jet.OLEDB.4.0. Η προέλευση δεδομένων της σελίδας ASP είναι ένα αρχείο βάσης δεδομένων (.mdb) της Microsoft Access. Σε αυτό το σενάριο, ενδέχεται να λάβετε το ακόλουθο μήνυμα λάθους όταν κάνετε αίτηση για τη σελίδα ASP:
Σφάλμα μηχανισμού βάσης δεδομένων Microsoft JET '80004005'

Απροσδιόριστο σφάλμα
Σημείωση Θα εμφανιστεί ένα παρόμοιο μήνυμα λάθους όταν χρησιμοποιείτε και τα δύο από τα εξής:
  • Μια βάση δεδομένων της Microsoft Access σε μορφή αρχείου της Access 2007 (.accdb)
  • Η υπηρεσία παροχής δεδομένων Microsoft.ACE.OLEDB.12.0

Αιτία

Αυτό το ζήτημα μπορεί να προκύψει εάν το IIS 7.0 έχει ρυθμιστεί για να φορτώσετε το τρέχον προφίλ χρήστη για μια ταυτότητα χώρου συγκέντρωσης εφαρμογών. Αυτό μπορεί να προκαλέσει ζητήματα συμβατότητας με παλαιού τύπου εφαρμογές ASP και εφαρμογές που βασίζονται στο ADO, επειδή ο τρέχων χρήστης δεν μπορεί να έχει επαρκή δικαιώματα εγγραφής στον προσωρινό κατάλογο.

Προτεινόμενη αντιμετώπιση

Για να επιλύσετε αυτό το ζήτημα, πρέπει να προσθέσετε τις καταχωρήσεις ελέγχου πρόσβασης σωστός προσωρινού καταλόγου για την ταυτότητα της διεργασίας. Για να γίνει αυτό, ακολουθήστε τα βήματα για το λειτουργικό σας σύστημα.

Τα Windows Server 2008 και Windows Vista με SP1 ή νεότερων εκδόσεων

Για να επιλύσετε αυτό το ζήτημα σε ένα διακομιστή Web με IIS 7.0 που εκτελείται σε Windows Server 2008 ή Windows Vista με SP1 ή νεότερων εκδόσεων, ακολουθήστε τα εξής βήματα:
  1. Κάντε κλικ στο κουμπί Έναρξη, κάντε κλικ στην επιλογή Όλα τα προγράμματα, κατόπιν στην επιλογή Βοηθήματα, κάντε δεξιό κλικ σε γραμμή εντολώνκαι, στη συνέχεια, κάντε κλικ στην εντολή Εκτέλεση ως διαχειριστής.
  2. Όταν σας ζητηθεί κωδικός πρόσβασης διαχειριστή ή επιβεβαίωση, πληκτρολογήστε τον κωδικό πρόσβασης ή κάντε κλικ στο κουμπί συνέχεια.
  3. Πληκτρολογήστε την ακόλουθη εντολή και, στη συνέχεια, πιέστε το πλήκτρο ENTER:
    ICACLS %SystemDrive%\Windows\Temp /grant Users:(CI)(S,WD,AD,X)

    Σημείωση Αυτή η εντολή επιτρέπει σε κάθε χρήστη να δημιουργήσει αρχεία και καταλόγους στον προσωρινό κατάλογο.
  4. Πληκτρολογήστε την ακόλουθη εντολή και, στη συνέχεια, πιέστε το πλήκτρο ENTER:
    ICACLS %SystemDrive%\Windows\Temp /grant "CREATOR OWNER":(OI)(CI)(IO)(F)

    Σημείωση Ο χρήστης που δημιουργεί ένα αρχείο ή έναν κατάλογο στον προσωρινό κατάλογο είναι ο CREATOR OWNER. Η καταχώρηση ελέγχου πρόσβασης CREATOR OWNER παραχωρεί μια πλήρη έλεγχο χρήστη μέσω του αρχείου ή μέσω του καταλόγου. Οι άλλοι χρήστες δεν είναι δυνατό να πρόσβαση αυτά τα αρχεία και τους καταλόγους, επειδή δεν είναι ο CREATOR OWNER.
Τα Windows Vista RTM

Για να επιλύσετε αυτό το ζήτημα σε ένα διακομιστή Web με IIS 7.0 που εκτελείται σε Windows Vista RTM, ακολουθήστε τα εξής βήματα:
Σημείωση Από προεπιλογή στα Windows Vista RTM, την ταυτότητα της διεργασίας είναι NetworkService και τον προσωρινό κατάλογο είναι % windir%\ServiceProfiles\NetworkService\AppData\Local\Temp.
  1. Κάντε κλικ στο κουμπί Έναρξη, κάντε κλικ στην επιλογή Όλα τα προγράμματα, κατόπιν στην επιλογή Βοηθήματα, κάντε δεξιό κλικ σε γραμμή εντολώνκαι, στη συνέχεια, κάντε κλικ στην εντολή Εκτέλεση ως διαχειριστής.
  2. Όταν σας ζητηθεί κωδικός πρόσβασης διαχειριστή ή επιβεβαίωση, πληκτρολογήστε τον κωδικό πρόσβασης ή κάντε κλικ στο κουμπί συνέχεια.
  3. Πληκτρολογήστε την ακόλουθη εντολή και, στη συνέχεια, πιέστε το πλήκτρο ENTER:
    ICACLS %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant Users:(CI)(S,WD,AD,X)

    Σημείωση Αυτή η εντολή επιτρέπει σε κάθε χρήστη να δημιουργήσει αρχεία και καταλόγους στον προσωρινό κατάλογο.
  4. Πληκτρολογήστε την ακόλουθη εντολή και, στη συνέχεια, πιέστε το πλήκτρο ENTER:
    ICACLS %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant "CREATOR OWNER":(OI)(CI)(IO)(F)

    Σημείωση Ο χρήστης που δημιουργεί ένα αρχείο ή έναν κατάλογο στον προσωρινό κατάλογο είναι ο CREATOR OWNER. Η καταχώρηση ελέγχου πρόσβασης CREATOR OWNER παραχωρεί ένα χρήστη πλήρη έλεγχο πάνω από το αρχείο ή τον κατάλογο. Οι άλλοι χρήστες δεν είναι δυνατό να πρόσβαση αυτά τα αρχεία και τους καταλόγους, επειδή δεν είναι ο CREATOR OWNER.

Εναλλακτικός τρόπος αντιμετώπισης

Για να επιλύσετε αυτό το ζήτημα, χρησιμοποιήστε τη μέθοδο που περιγράφεται στην ενότητα "Προτεινόμενη αντιμετώπιση". Ωστόσο, εάν δεν θέλετε να προσθέσετε καταχωρήσεις ελέγχου πρόσβασης σε προσωρινό κατάλογο για την ταυτότητα διεργασίας, μπορείτε να αντιμετωπίσετε το ζήτημα, απενεργοποιώντας την ιδιότητα loadUserProfile για το χώρο συγκέντρωσης εφαρμογών. Όταν αυτή η ιδιότητα είναι απενεργοποιημένη, το IIS 7.0 δεν φορτώνει το τρέχον προφίλ χρήστη για το χώρο συγκέντρωσης εφαρμογών.

Σημαντικό Εάν απενεργοποιήσετε αυτήν την ιδιότητα, μπορεί να δημιουργηθεί σε κίνδυνο την ασφάλεια. Βεβαιωθείτε ότι έχετε κατανοήσει και να εκτιμήσετε τους κινδύνους, πριν να εφαρμόσετε αυτόν τον εναλλακτικό τρόπο αντιμετώπισης.

Για να απενεργοποιήσετε την ιδιότητα loadUserProfile για το χώρο συγκέντρωσης εφαρμογών, τροποποιήστε το αρχείο ApplicationHost.config. Το ακόλουθο παράδειγμα παρουσιάζει τον τρόπο για να το κάνετε αυτό.
<applicationPoolDefaults>    <processModel identityType="NetworkService" loadUserProfile="false" />
</applicationPoolDefaults>

Αναφορές

Για περισσότερες πληροφορίες σχετικά με τα προσωρινά δικαιώματα καταλόγου όταν εκτελείτε ένα ερώτημα βάσης δεδομένων σε μια σελίδα ASP, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

315456 εμφανίζεται το μήνυμα λάθους αποτελεσμάτων βάσης δεδομένων κατά τη σύνδεση με τη βάση δεδομένων από μια σελίδα ASP στο FrontPage

Χρήση των κλασικών ASP με βάσεις δεδομένων της Microsoft Access στο IIS 7.0 και IIS 7.5

http://learn.iis.net/page.aspx/563/using-classic-asp-with-microsoft-access-databases-on-iis-70-and-iis-75/
Ιδιότητες

Αναγνωριστικό άρθρου: 926939 - Τελευταία αναθεώρηση: 14 Ιαν 2017 - Αναθεώρηση: 1

Σχόλια