Artigo: 317955 - Última revisão: sexta-feira, 8 de Julho de 2005 - Revisão: 4.4

CORRECÇÃO: Mensagem de erro "Failed to iniciar a monitorização de alterações de directório" quando navega para uma página ASP.NET

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sintomas

Quando navega para uma página ASP.NET (.aspx), poderá receber uma das seguintes mensagens de erro:
Acesso negado ao directório ' D:\MyWeb\Users\MainDirectory\MyApplication\ '. Falha ao iniciar a monitorização de alterações de directório.
- ou -
Acesso negado a ' D:\MyWeb\Users\MainDirectory\MyApplication\SamplePage.aspx '. Falha ao iniciar monitorização de alterações de ficheiros.
Para obter mais informações sobre os rastreios de chamada estão associadas a cada uma destas mensagens de erro, consulte a secção "Mais informação".

Causa

Para detectar alterações a ficheiros, a identidade do processo e a identidade de utilizador representada pela tem de ter permissões específicas para todos os directórios na hierarquia do caminho do ficheiro para o ficheiro que o ASP.NET está a monitorizar se algum dos directórios em que hierarquia ter mais do que oito caracteres nos respectivos nomes.

Seguem-se alguns exemplos dos ficheiros que monitoriza do ASP.NET:
  • Ficheiros Web.config
  • Ficheiros Machine.config
  • Ficheiros no directório Bin de uma aplicação do ASP.NET
  • Ficheiros de dependência da cache
Recebe a primeira mensagem de erro se a identidade do processo Aspnet_wp.exe (a conta ASPNET por predefinição) não tem permissões no, pelo menos, um dos directórios na hierarquia desse caminho de ficheiro.

Recebe a segunda mensagem de erro se a conta representada pela não tem permissões de, pelo menos, um dos directórios na hierarquia desse caminho de ficheiro.

Resolução

Utilize um dos seguintes métodos para resolver este problema.

Método 1

Certifique-se que todas os nomes dos directórios na hierarquia desse caminho de ficheiro são menos nove caracteres longo.

Por exemplo:
C:\Web\Users\MainDir\Site1
Nota Se mudar o nome de directórios para que o comprimento de cada nome de directório agora menos nove caracteres, depois de efectuar as alterações necessárias na configuração do Web site no Microsoft (IIS) para lidar com o directório mudar o nome, terá de reiniciar o IIS.

Método 2

Conceda as permissões necessárias em todos os directórios nessa hierarquia para a conta de processo do ASP.NET (ASPNET por predefinição) ou para a conta representada pela (se a representação estiver activada). Para o fazer, siga estes passos:
  1. No Explorador do Windows, procure na pasta da aplicação ou ao directório virtual que contém o conteúdo (por exemplo, D:\MyWeb\Users\MainDirectory\MyApplication).
  2. Clique com o botão direito do rato na pasta e, em seguida, clique em Propriedades .
  3. No separador segurança , clique em Adicionar .
  4. Escreva ComputerName \ASPNET (por exemplo, num computador chamado Webdev, escreva Webdev\ASPNET ) e, em seguida, clique em OK . Se a representação estiver activada, também tem de adicionar as contas representadas.
  5. Permitir as seguintes permissões da conta ASPNET (e para as contas representadas) se a representação estiver activada:
    • Ler & executar
    • Listar conteúdo das pastas
    • Ler

  6. Clique em OK para fechar a caixa de diálogo Propriedades de e para guardar as alterações.
  7. Repita os passos 2 a 6 para todas as pastas na hierarquia do caminho. Por exemplo:

    • D:\MyWeb\Users\MainDirectory
    • D:\MyWeb\Users
    • D:\MyWeb
    • D:\

    Se pretender conceder permissões mais restritivas para estas pastas, siga estes passos depois de concluir o passo 5:

    1. Clique em Avançadas .
    2. No separador permissões , clique na entrada permissão para a conta ASPNET (ou outra conta representada pela) e, em seguida, clique em Editar .
    3. Clique em Limpar tudo e, em seguida, clique para seleccionar a caixa de verificação Permitir para a Listar pasta / ler dados permissão.
    Nota : O directório virtual da aplicação (por exemplo, D:\MyWeb\Users\MainDirectory\MyApplication) tem de ter, pelo menos, permissões que especificou no passo 5.
  8. Reinicie o IIS.

Método 3

Se o computador com o IIS 6.0, conceda as permissões necessárias no todas as pastas nessa hierarquia para a conta de serviço de rede. Para o fazer, siga estes passos:
  1. No Explorador do Windows, localize a pasta de aplicação ou o directório virtual que contém o conteúdo (por exemplo, D:\MyWeb\Users\MainDirectory\MyApplication).
  2. Clique com o botão direito do rato na pasta e, em seguida, clique em Propriedades .
  3. No separador segurança , clique em Adicionar .
  4. Escreva ComputerName \NETWORK SERVICE (por exemplo, um computador chamado Webdev, escreva Webdev\NETWORK SERVICE ) e, em seguida, clique em OK . Se a representação estiver activada, também tem de adicionar as contas representadas.
  5. Permitir as seguintes permissões para a conta do serviço de rede (e para as contas representadas) se a representação estiver activada:
    • Ler & executar
    • Listar conteúdo das pastas
    • Ler

  6. Clique em OK para fechar a caixa de diálogo Propriedades de e para guardar as alterações.
  7. Repita os passos 2 a 6 para todas as pastas na hierarquia do caminho. Por exemplo:
    • D:\MyWeb\Users\MainDirectory
    • D:\MyWeb\Users
    • D:\MyWeb
    • D:\
    Se pretender conceder permissões mais restritivas para estas pastas, siga estes passos depois de concluir o passo 5:
    1. Clique em Avançadas .
    2. No separador permissões , clique na entrada permissão para a conta do serviço de rede (ou outra conta representada pela) e, em seguida, clique em Editar .
    3. Clique em Limpar tudo e, em seguida, clique para seleccionar a caixa de verificação Permitir para a Listar pasta / ler dados permissão.
    Nota O directório virtual da aplicação (por exemplo, D:\MyWeb\Users\MainDirectory\MyApplication) tem de ter, pelo menos, as permissões especificadas no passo 5.
  8. Reinicie o IIS.
Nota Estes passos só são válidos para aplicações Web que estão hospedadas no IIS 6.0.

Ponto Da Situação

A Microsoft confirmou que este erro ocorre nos produtos da Microsoft listados no início deste artigo. Este erro foi corrigido no ASP.NET (incluído com o .NET Framework) 1.1.

Mais Informação

Este é o rastreio de pilha de chamada está associado com a primeira mensagem de erro a secção "Sintomas":
[HttpException (0x80004005): Access denied to 'D:\MyWeb\Users\MainDirectory\MyApplication\' directory. Failed to start monitoring directory changes.]
   System.Web.FileChangesMonitor.StartMonitoringDirectoryRenamesAndBinDirectory(String dir, FileChangeEventHandler callback)
   System.Web.HttpRuntime.StartMonitoringDirectoryRenamesAndBinDirectory()
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context)

[HttpException (0x80004005): ASP.NET Initialization Error]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context)
   System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)
					
Este é o rastreio da pilha chamada que está associado a segunda mensagem de erro na secção "Sintomas":
[HttpException (0x80004005): Access denied to 'D:\MyWeb\Users\MainDirectory\MyApplication\SamplePage.aspx'. Failed to start monitoring file changes.]
   System.Web.FileChangesMonitor.StartMonitoringFile(String fileName, FileChangeEventHandler callback)
   System.Web.Caching.CacheDependency.Init(String[] filenames, String[] cachekeys, CacheDependency dependency, DateTime start)
   System.Web.Caching.CacheDependency..ctor(String filename, DateTime start)
   System.Web.Caching.CacheDependency..ctor(String filename)
   System.Web.Security.FileAuthorizationModule.OnEnter(Object source, EventArgs eventArgs)
   System.Web.SyncEventExecutionStep.Execute()
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
					
Se receber uma mensagens de erro listadas na secção "Sintomas", mas se o rastreio de pilha de chamada não for a mesma, a causa da mensagem de erro pode ser diferente. Neste caso, consulte os artigos na "Referências" para obter mais informações.

Referências

Para obter informações adicionais sobre a mesma mensagem de erro num cenário diferente, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
316721  (http://support.microsoft.com/kb/316721/ ) Mensagem de erro "Falha ao iniciar a monitorização de alterações de directório" quando navega para página ASP.NET
Para obter informações adicionais sobre as permissões da conta ASPNET necessita para executar as aplicações do ASP.NET, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
317012  (http://support.microsoft.com/kb/317012/ ) Identidade de processo e um pedido no ASP.NET
Para obter informações adicionais sobre a segurança do ASP.NET, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
306590  (http://support.microsoft.com/kb/306590/ ) Descrição geral da segurança do ASP.NET

A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.0
Palavras-chave: 
kbmt kbfix kbbug kbcaching kbpending kbsecurity KB317955 KbMtpt
Tradução automáticaTraduçã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: 317955  (http://support.microsoft.com/kb/317955/en-us/ )
Retired KB ArticleExclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.