Mensagem de erro ao solicitar uma página ASP que se conecta a um banco de dados do Access no IIS 7.0: "Erro '80004005' do Mecanismo de banco de dados Microsoft Jet"

Traduções deste artigo Traduções deste artigo
ID do artigo: 926939 - Exibir os produtos aos quais esse artigo se aplica.
Importante Este artigo contém informações que mostram como ajudar a reduzir as configurações de segurança ou como desativar os recursos de segurança em um computador. É possível fazer essas alterações para solucionar um problema específico. Antes de fazer essas alterações, é aconselhável avaliar os riscos associados à implementação dessa solução alternativa no ambiente específico. Se você implementar essa solução alternativa, execute as etapas adicionais apropriadas para ajudar a proteger o computador.
Expandir tudo | Recolher tudo

Sintomas

Considere o seguinte cenário. Em um servidor da Web que está executando o Microsoft Internet Information Services (IIS) 7.0, você hospeda uma página ASP que se conecta a um banco de dados. O provedor de dados da página ASP é o Microsoft.Jet.OLEDB.4.0. A fonte de dados da página ASP é um arquivo (.mdb) do banco de dados do Microsoft Access. Nesse cenário, a seguinte mensagem de erro pode ser exibida ao solicitar a página ASP:
Erro '80004005' do Mecanismo de banco de dados Microsoft Jet
Erro não especificado

Causa

Esse problema ocorre se o IIS 7.0 estiver configurado para carregar o perfil do usuário atual para uma identidade do pool de aplicativos. Isto pode causar problemas de compatibilidade com aplicativos com base em ASP e em ADO herdados porque o usuário atual pode não ter permissões suficientes para gravar no diretório temporário.

Resolução

Para resolver esse problema, é necessário adicionar as entradas de controle de acesso corretas ao diretório temporário para a identidade do processo. Para fazer isso, execute as seguintes etapas:

Observação Por padrão, a identidade do processo é NetworkService, e o diretório temporário é %windir%\ServiceProfiles\NetworkService\AppData\Local\Temp.
  1. Clique em Iniciar, em Todos os Programas, clique em Acessórios, clique com o botão direito do mouse em Prompt de Comando e em Executar como administrador.
  2. Ao ser solicitado uma senha de administrador ou uma confirmação, digite a senha ou clique em Continuar.
  3. Digite o seguinte comando e pressione ENTER:
    icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant Users:(CI)(S,WD,AD,X)
    Observação Esse comando habilita cada usuário para criar arquivos e diretórios no diretório temporário.
  4. Digite o seguinte comando e pressione ENTER:
    icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant "CREATOR OWNER":(OI)(CI)(IO)(F)
    Observação O usuário que cria um arquivo ou diretório no diretório temporário é o PROPRIETÁRIO CRIADOR. A entrada de controle de acesso do PROPRIETÁRIO CRIADOR concede um controle completo de usuário sobre o arquivo ou o diretório. Outros usuários não podem acessar esses arquivos e diretórios porque eles não são PROPRIETÁRIO CRIADOR.

Como Contornar

Para resolver esse problema, use o método descrito na seção "Resolução". Entretanto, se você não deseja adicionar entradas de controle ao diretório temporário para a identidade do processo, será possível solucionar o problema desabilitando a propriedade loadUserProfile para o pool de aplicativos. Quando essa propriedade está desabilitada, o IIS 7.0 não carrega o perfil do usuário atual para o pool de aplicativos.

Importante Se você desabilitar essa propriedade, poderá haver um risco de segurança. Certifique-se de que entendeu e avaliou os riscos antes de implementar essa solução alternativa.

Para desabilitar a propriedade loadUserProfile para o pool de aplicativos, modifique o arquivo ApplicationHost.config. O seguinte exemplo demonstra como fazer isso.
<applicationPoolDefaults>
    <processModel identityType="NetworkService" loadUserProfile="false" />
</applicationPoolDefaults> 

Referências

Para obter mais informações sobre permissões de usuário ao executar uma consulta de banco de dados em uma página ASP, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft:
210457 Erro de aplicativo ASP 0115 ou Inetinfo ocorre em um arquivo ASP que está executando uma consulta de banco de dados.
Para obter mais informações sobre permissões de diretório temporário ao executar uma consulta de banco de dados em uma página ASP, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft:
315456 Uma mensagem de erro sobre os resultados do banco de dados é exibida ao conectar-se a um banco de dados a partir de uma página ASP no FrontPage

Propriedades

ID do artigo: 926939 - Última revisão: quinta-feira, 17 de janeiro de 2008 - Revisão: 2.0
A informação contida neste artigo aplica-se a:
  • Microsoft Internet Information Services 7.0
Palavras-chave: 
kbtshoot kbprb KB926939

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