Podczas żądania strony ASP, która łączy się z bazą danych programu Access, w programie IIS 7.0 jest wyświetlany następujący komunikat o błędzie: „Microsoft JET Database Engine error '80004005'” (Błąd w aparacie bazy danych Microsoft JET '80004005').

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 926939 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Ważne: Ten artykuł zawiera informacje, które opisują, jak obniżyć poziom zabezpieczeń lub wyłączyć funkcje zabezpieczeń na komputerze. Takie zmiany można wprowadzić w celu obejścia określonego problemu. Przed ich wprowadzeniem zaleca się dokonanie oceny zagrożenia, z jakim wiąże się zastosowanie tego obejścia w danym środowisku. W przypadku zastosowania tego obejścia należy podjąć odpowiednie kroki dodatkowe, aby pomóc w ochronie komputera.
Rozwiń wszystko | Zwiń wszystko

Symptomy

Należy rozważyć następujący scenariusz. Na serwerze sieci Web, na którym działają Internetowe usługi informacyjne firmy Microsoft w wersji 7.0, jest obsługiwana strona ASP łącząca się z bazą danych. Dostawca danych strony ASP to Microsoft.Jet.OLEDB.4.0. Źródłem danych strony ASP jest plik bazy danych programu Microsoft Access (mdb). W tym scenariuszu może się pojawić następujący komunikat o błędzie, gdy zostanie wysłane żądanie strony ASP:
Błąd w aparacie bazy danych Microsoft JET '80004005'
Nieokreślony błąd

Przyczyna

Ten problem może wystąpić, jeśli w programie IIS 7.0 skonfigurowano ładowanie profilu bieżącego użytkownika dla tożsamości puli aplikacji. Może to spowodować problemy ze zgodnością starszych aplikacji opartych na technologii ASP i aplikacji opartych na technologii ADO, ponieważ bieżący użytkownik może nie mieć wystarczających uprawnień zapisu w katalogu tymczasowym.

Rozwiązanie

Aby rozwiązać ten problem, należy dodać odpowiednie wpisy kontroli dostępu do katalogu tymczasowego dla tożsamości procesu. Aby to zrobić, wykonaj następujące kroki.

Uwaga: Domyślnie tożsamość procesu to NetworkService, a katalog tymczasowy to %windir%\ServiceProfiles\NetworkService\AppData\Local\Temp.
  1. Kliknij kolejno przycisk Start, polecenie Wszystkie programy i Akcesoria, prawym przyciskiem myszy kliknij polecenie Wiersz polecenia, a następnie wybierz polecenie Uruchom jako administrator.
  2. Jeśli zostanie wyświetlony monit o hasło administratora lub potwierdzenie, wpisz hasło lub kliknij przycisk Kontynuuj.
  3. Wpisz następujące polecenie, a następnie naciśnij klawisz ENTER:
    icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant Users:(CI)(S,WD,AD,X)
    Uwaga: To polecenie umożliwia każdemu użytkownikowi tworzenie plików i katalogów w katalogu tymczasowym.
  4. Wpisz następujące polecenie, a następnie naciśnij klawisz ENTER:
    icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant "CREATOR OWNER":(OI)(CI)(IO)(F)
    Uwaga: Użytkownik tworzący plik lub katalog w katalogu tymczasowym jest TWÓRCĄ-WŁAŚCICIELEM. Kontrola dostępu TWÓRCY-WŁAŚCICIELA zapewnia użytkownikowi pełną kontrolę nad plikiem lub katalogiem. Inni użytkownicy nie mają dostępu do tych plików i katalogów, ponieważ nie mają kontroli dostępu TWÓRCA-WŁAŚCICIEL.

Obejście problemu

Aby rozwiązać ten problem, należy użyć metody opisanej w sekcji w „Rozwiązanie” . Jeśli jednak administrator nie chce dodawać wpisów kontroli dostępu do katalogu tymczasowego dla tożsamości procesu, może obejść ten problem, wyłączając właściwość loadUserProfile dla puli aplikacji. Gdy ta właściwość jest wyłączona, program IIS 7.0 nie ładuje profilu bieżącego użytkownika dla puli aplikacji.

Ważne: Wyłączenie tej właściwości może narazić komputer na niebezpieczeństwo. Przed zastosowaniem tego obejścia należy sobie uświadomić zagrożenia i ocenić je.

Aby wyłączyć właściwość loadUserProfile dla puli aplikacji, należy zmodyfikować plik ApplicationHost.config. W następującym przykładzie pokazano, jak to zrobić.
<applicationPoolDefaults>
    <processModel identityType="NetworkService" loadUserProfile="false" />
</applicationPoolDefaults> 

Materiały referencyjne

Aby uzyskać więcej informacji na temat uprawnień użytkowników w czasie wykonywania zapytania do bazy danych na stronie ASP, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
210457 W pliku ASP wykonującym kwerendę bazy danych występuje błąd aplikacji Inetinfo lub błąd ASP 0115
Aby uzyskać więcej informacji na temat uprawnień do katalogów tymczasowych w czasie wykonywania zapytania do bazy danych na stronie ASP, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
315456 Podczas łączenia się z bazą danych ze strony ASP w programie FrontPage jest wyświetlany komunikat o błędzie wyników bazy danych

Właściwości

Numer ID artykułu: 926939 - Ostatnia weryfikacja: 4 stycznia 2008 - Weryfikacja: 2.0
Informacje zawarte w tym artykule dotyczą:
  • Microsoft Internet Information Services 7.0
Słowa kluczowe: 
kbtshoot kbprb KB926939

Przekaż opinię

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com