Chybová zpráva při požadavku na stránku ASP, který se připojuje k databázi aplikace Access ve službě IIS 7.0: "Chyba '80004005' databázový stroj Microsoft JET"

Důležité: Tento článek obsahuje informace o tom, jak oslabit zabezpečení nebo vypnout funkce zabezpečení v počítači. Tyto změny mohou vyřešit konkrétní problém. Před provedením těchto změn však doporučujeme vyhodnotit nebezpečí spojená s nasazením tohoto řešení v konkrétním prostředí. Pokud se rozhodnete řešení implementovat, přijměte veškerá dodatečná opatření k ochraně počítače.

Příznaky

Zvažte následující scénář. Na webovém serveru je spuštěna Internetová informační služba (IIS) 7.0 je hostitelem active server page (ASP), který se připojuje k databázi. Zprostředkovatel dat stránky ASP je zprostředkovatel dat Microsoft.Jet.OLEDB.4.0. Zdroj dat stránky ASP je soubor databáze (MDB) aplikace Microsoft Access. V tomto scénáři může zobrazit následující chybová zpráva při požadavku na stránku ASP:
Databázový stroj Microsoft JET chyba '80004005'

Nespecifikovaná chyba
Poznámka: Podobná chybová zpráva se setkáte při použití obou z následujících kroků:
  • Databázi aplikace Microsoft Access do formátu souborů aplikace Access 2007 (.accdb)
  • Zprostředkovatel dat Microsoft.ACE.OLEDB.12.0

Příčina

Tomuto problému může dojít, pokud je nakonfigurováno načíst aktuální profil uživatele identity fondu aplikací služby IIS 7.0. To může způsobit problémy s kompatibilitou starších aplikací založená na prostředí ASP a objektů ADO aplikace protože aktuální uživatel nemá dostatečná oprávnění k zápisu do dočasného adresáře.

Řešení

Chcete-li vyřešit tento problém, je nutné přidat položky řízení přístupu správné do dočasného adresáře pro identitu procesu. Chcete-li to provést, postupujte podle pokynů pro váš operační systém.

Windows Server 2008 a Windows Vista s aktualizací SP1 nebo novější verze

Chcete-li vyřešit tento problém na serveru WWW služby IIS 7.0 spuštěné v systému Windows Server 2008 nebo Windows Vista s aktualizací SP1 nebo novější verze, postupujte takto:
  1. Klepněte na tlačítko Start, přejděte na příkaz Všechny programy, klepněte na položku Příslušenství, klepněte pravým tlačítkem myši Příkazový řádeka potom klepněte na příkaz Spustit jako správce.
  2. Po zobrazení výzvy k zadání hesla správce nebo k potvrzení, zadejte heslo nebo klepněte na tlačítko pokračovat.
  3. Zadejte následující příkaz a stiskněte klávesu ENTER:
    / icacls %SystemDrive%\Windows\Temp grant Users:(CI)(S,WD,AD,X)

    Poznámka: Tento příkaz umožňuje každý uživatel vytvořit soubory a adresáře v dočasném adresáři.
  4. Zadejte následující příkaz a stiskněte klávesu ENTER:
    / icacls %SystemDrive%\Windows\Temp grant "tvůrce OWNER":(OI)(CI)(IO)(F)

    Poznámka: Uživatel, který vytvoří soubor nebo adresář v dočasném adresáři je CREATOR OWNER. Položka řízení přístupu CREATOR OWNER uděluje uživateli kompletní ovládací prvek do souboru nebo adresáře. Ostatní uživatelé nemají přístup k těmto souborům a adresářům protože nejsou CREATOR OWNER.
Windows Vista RTM

Chcete-li vyřešit tento problém na serveru WWW služby IIS 7.0 spuštěné v systému Windows Vista RTM, postupujte takto:
Poznámka: Ve výchozím nastavení v systému Windows Vista RTM je identita procesu NetworkService a je dočasný adresář % windir%\ServiceProfiles\NetworkService\AppData\Local\Temp.
  1. Klepněte na tlačítko Start, přejděte na příkaz Všechny programy, klepněte na položku Příslušenství, klepněte pravým tlačítkem myši Příkazový řádeka potom klepněte na příkaz Spustit jako správce.
  2. Po zobrazení výzvy k zadání hesla správce nebo k potvrzení, zadejte heslo nebo klepněte na tlačítko pokračovat.
  3. Zadejte následující příkaz a stiskněte klávesu ENTER:
    / icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp grant Users:(CI)(S,WD,AD,X)

    Poznámka: Tento příkaz umožňuje každý uživatel vytvořit soubory a adresáře v dočasném adresáři.
  4. Zadejte následující příkaz a stiskněte klávesu ENTER:
    / icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp grant "tvůrce OWNER":(OI)(CI)(IO)(F)

    Poznámka: Uživatel, který vytvoří soubor nebo adresář v dočasném adresáři je CREATOR OWNER. Položka řízení přístupu CREATOR OWNER uděluje uživateli úplnou kontrolu nad soubor nebo adresář. Ostatní uživatelé nemají přístup k těmto souborům a adresářům protože nejsou CREATOR OWNER.

Jak potíže obejít

Chcete-li vyřešit tento problém, použijte metodu popsanou v části "Řešení". Nicméně pokud nechcete přidat položky řízení přístupu do dočasného adresáře pro identitu procesu, můžete pracovat kolem problém zakázáním loadUserProfile vlastnost fondu aplikací. Pokud je tato vlastnost zakázána, IIS 7.0 načíst aktuální profil uživatele pro fond aplikací.

Důležité: Pokud zakážete tuto vlastnost, může být vytvořena bezpečnostní riziko. Ujistěte se, pochopit a hodnocení rizik před implementací tohoto řešení.

Chcete-li zakázat loadUserProfile vlastnost fondu aplikací, upravte v souboru ApplicationHost.config. Následující příklad ukazuje, jak to provést.
<applicationPoolDefaults>    <processModel identityType="NetworkService" loadUserProfile="false" />
</applicationPoolDefaults>

Odkazy

Další informace o dočasné oprávnění adresáře při spuštění dotazu databázi ve stránce ASP, klepněte na následující číslo článku databáze Microsoft Knowledge Base:

315456 je databáze výsledků chybová zpráva při připojení k databázi ze stránky ASP v aplikaci FrontPage

Použití klasické ASP s databází aplikace Microsoft Access v IIS 7.0 a služba IIS 7.5

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

ID článku: 926939 - Poslední kontrola: 14. 1. 2017 - Revize: 1

Váš názor