Mensagem de erro quando solicita a página de um ASP que liga à base de dados do Access no IIS 7.0: "Error '80004005' do Microsoft JET Database Engine"

Traduções de Artigos Traduções de Artigos
Artigo: 926939 - Ver produtos para os quais este artigo se aplica.
importante Este artigo contém informações que mostra a ajuda de definições de segurança mais baixas ou como desactivar as funcionalidades de segurança num computador. Pode efectuar estas alterações para contornar um problema específico. Antes de efectuar estas alterações, recomendamos que avalie os riscos associados à implementação desta solução alternativa no seu ambiente específico. Se implementar esta solução alternativa, tome medidas adicionais adequadas para ajudar a proteger o computador.
Expandir tudo | Reduzir tudo

Sintomas

Considere o seguinte cenário. Num servidor Web com o Microsoft Internet Information Services (IIS) 7.0, hospedar uma página de servidor activas (ASP) que liga a uma base de dados. O fornecedor de dados de página ASP é o fornecedor de dados Microsoft.Jet.OLEDB.4.0. A origem de dados de página ASP é um ficheiro de base de dados (.mdb) do Microsoft Access. Neste cenário, poderá receber a seguinte mensagem de erro quando se solicita a página ASP:
Erro do Microsoft JET Database Engine '80004005'
Erro não especificado
Nota Encontrará uma mensagem de erro semelhante quando utilizar ambos os seguintes procedimentos:
  • Uma base de dados do Microsoft Access no formato de ficheiro do Access 2007 (.accdb)
  • O fornecedor de dados Microsoft.ACE.OLEDB.12.0

Causa

Este problema poderá ocorrer se o IIS 7.0 estiver configurado para carregar o perfil de utilizador actual para uma identidade do agrupamento de aplicações. Isto pode causar problemas de compatibilidade com legacy aplicações baseadas no ASP e aplicações baseadas no ADO porque o utilizador actual pode não tem permissões suficientes para escrever o directório temporário.

Resolução

Para resolver este problema, tem de adicionar as entradas de controlo de acesso correcto para o directório temporário para a identidade do processo. Para o fazer, siga os passos para o sistema operativo.

Windows Server 2008 e Windows Vista com SP1 ou versões posteriores

Para resolver este problema num servidor Web do IIS 7.0 está em execução no Windows Server 2008 ou no Windows Vista com SP1 ou versões posteriores, siga estes passos:
  1. Clique em Iniciar , clique em Todos os programas , clique em Acessórios , clique com o botão direito do rato em linha de comandos e, em seguida, clique em Executar como administrador .
  2. Quando lhe for pedido para uma palavra-passe de administrador ou uma confirmação, escreva a palavra-passe ou clique em continuar .
  3. Escreva o seguinte comando e, em seguida, prima ENTER:
    icacls %SystemDrive%\Windows\Temp /grant Users:(CI)(S WD, AD, X)

    Nota Este comando activa todos os utilizadores criar ficheiros e directórios no directório temporário.
  4. Escreva o seguinte comando e, em seguida, prima ENTER:
    icacls %SystemDrive%\Windows\Temp /grant "CREATOR OWNER":(OI)(CI)(E/S)(F)

    Nota O utilizador que cria um ficheiro ou um directório existente no directório temporário é CREATOR OWNER. CREATOR OWNER a entrada de controlo de acesso concede um utilizador controlo total sobre o ficheiro ou directório. Outros utilizadores não consegue aceder estes ficheiros e directórios porque não são CREATOR OWNER.
Windows Vista RTM

Para resolver este problema num servidor Web do IIS 7.0 que está a ser executado no Windows Vista RTM, siga estes passos:
Nota Por predefinição no Windows Vista RTM, a identidade do processo é o serviço de rede e o directório temporário é % windir%\ServiceProfiles\NetworkService\AppData\Local\Temp.
  1. Clique em Iniciar , clique em Todos os programas , clique em Acessórios , clique com o botão direito do rato em linha de comandos e, em seguida, clique em Executar como administrador .
  2. Quando lhe for pedido para uma palavra-passe de administrador ou uma confirmação, escreva a palavra-passe ou clique em continuar .
  3. Escreva o seguinte comando e, em seguida, prima ENTER:
    icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant Users:(CI)(S WD, AD, X)

    Nota Este comando activa todos os utilizadores criar ficheiros e directórios no directório temporário.
  4. Escreva o seguinte comando e, em seguida, prima ENTER:
    icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant "CREATOR OWNER":(OI)(CI)(E/S)(F)

    Nota O utilizador que cria um ficheiro ou um directório existente no directório temporário é CREATOR OWNER. A entrada de controlo de acesso CREATOR OWNER concede um controlo total do utilizador sobre o ficheiro ou directório. Outros utilizadores não consegue aceder estes ficheiros e directórios porque não são CREATOR OWNER.

Como contornar

Para resolver este problema, utilize o método descrito na secção "Resolução". No entanto, se que não pretende adicionar entradas de controlo de acesso para o directório temporário para a identidade do processo, pode resolver o problema desactivando a propriedade loadUserProfile para o agrupamento de aplicações. Quando esta propriedade estiver desactivada, o IIS 7.0 não carrega o perfil de utilizador actual para o agrupamento de aplicações.

importante Se desactivar esta propriedade, é possível criar um risco de segurança. Certifique-se que compreender e avalie os riscos antes de implementar esta solução alternativa.

Para desactivar a propriedade loadUserProfile para o agrupamento de aplicações, modifique o ficheiro ApplicationHost.config. O exemplo seguinte demonstra como efectuar este procedimento.
<applicationPoolDefaults>
    <processModel identityType="NetworkService" loadUserProfile="false" />
</applicationPoolDefaults> 

Referências

Para obter mais informações sobre temporário permissões de directório quando executa uma consulta de base de dados numa página ASP, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
315456Receber uma mensagem de erro de resultados da base de dados quando liga à base de dados a partir de uma página ASP no FrontPage
Utilizar o ASP clássico com bases de dados do Microsoft Access no IIS 7.0 e IIS 7.5
http://learn.iis.net/page.aspx/563/using-classic-asp-with-microsoft-access-databases-on-iis-70-and-iis-75/

Propriedades

Artigo: 926939 - Última revisão: 12 de março de 2009 - Revisão: 4.0
A informação contida neste artigo aplica-se a:
  • Microsoft Internet Information Services 7.0
Palavras-chave: 
kbmt kbtshoot kbprb KB926939 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 926939

Submeter comentários

 

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