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"

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.
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: 01/17/2008 23:25:00 - Revisão: 2.0

Microsoft Internet Information Services 7.0

  • kbtshoot kbprb KB926939
Comentários