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

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
Importante Este artigo contém informações que lhe mostra como pode ajudar as definições de segurança inferiores 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 destas medidas no seu ambiente específico. Se implementar esta solução alternativa, tome medidas adicionais adequadas para ajudar a proteger o computador.
Sintomas
Considere o seguinte cenário. Num servidor Web que esteja a executar o Microsoft Internet Information Services (IIS) 7.0, alojar uma página de servidor activas (ASP) que liga a uma base de dados. O fornecedor de dados da página ASP é o fornecedor de dados Microsoft.Jet.OLEDB.4.0. A origem de dados da 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 de motor de base de dados do Microsoft JET '80004005'
Erro não especificado
Nota Irá 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 de Microsoft.ACE.OLEDB.12.0
Causa
Este problema poderá ocorrer se o IIS 7.0 está configurado para carregar o perfil de utilizador actual para uma identidade do agrupamento de aplicações. Isto pode causar problemas de compatibilidade com aplicações legadas baseadas no ASP e aplicações baseadas no ADO porque o utilizador actual pode não ter permissões suficientes para escrever para 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 tal, 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 em execução no Windows Server 2008 ou Windows Vista com SP1 ou versões posteriores, siga estes passos:
  1. Clique em Iniciar, clique em Todos os programas, clique em Acessórios, linha de comandosde contexto e, em seguida, clique em Executar como administrador.
  2. Quando lhe for pedido para uma palavra-passe de administrador ou 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 permite que 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 "CRIADOR OWNER":(OI)(CI)(IO)(F)

    Nota O utilizador que cria um ficheiro ou um directório no directório temporário é o proprietário CRIADOR. A entrada de controlo de acesso do proprietário CRIADOR concede um controlo completo de utilizador através do ficheiro ou de directório. Outros utilizadores não é possível aceder estes ficheiros e directórios porque não são o proprietário CRIADOR.
Windows Vista RTM

Para resolver este problema num servidor Web do IIS 7.0 em execução 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, linha de comandosde contexto e, em seguida, clique em Executar como administrador.
  2. Quando lhe for pedido para uma palavra-passe de administrador ou 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 permite que 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 "CRIADOR OWNER":(OI)(CI)(IO)(F)

    Nota O utilizador que cria um ficheiro ou um directório no directório temporário é o proprietário CRIADOR. A entrada de controlo de acesso do proprietário CRIADOR concede a um utilizador o controlo completo sobre o ficheiro ou directório. Outros utilizadores não é possível aceder estes ficheiros e directórios porque não são o proprietário CRIADOR.
Como contornar
Para resolver este problema, utilize o método descrito na secção "Resolução". No entanto, se não pretende adicionar entradas de controlo de acesso para o directório temporário para a identidade do processo, pode contornar 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 conjunto aplicacional.

Importante Se desactivar esta propriedade, podem constituir um risco de segurança. Certifique-se de que compreender e avaliar os riscos antes de implementar esta solução alternativa.

Para desactivar a propriedade loadUserProfile para o agrupamento de aplicações, modificar o ficheiro applicationHost Config. O exemplo seguinte demonstra como efectuar este procedimento.
<applicationPoolDefaults>    <processModel identityType="NetworkService" loadUserProfile="false" /></applicationPoolDefaults> 
Referências
Para mais informações sobre temporário permissões de directório quando executar uma consulta de base de dados numa página ASP, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
315456 Recebe uma mensagem de erro de resultados de base de dados quando ligar à 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 o IIS 7.5
http://Learn.IIS.NET/page.aspx/563/using-Classic-ASP-with-Microsoft-Access-Databases-on-IIS-70-and-IIS-75/

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 926939 - Última Revisão: 05/07/2016 19:57:00 - Revisão: 5.0

Microsoft Internet Information Services 7.0

  • kbtshoot kbprb kbmt KB926939 KbMtpt
Comentários