Violação de acesso ocorre quando utiliza um processador de secção de configuração personalizada numa aplicação do ASP.NET sob pressão

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.

307513
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Este artigo faz referência à seguinte Microsoft .NET Framework Class Library espaços de nomes:
  • System.Configuration
Sintomas
Se uma aplicação do ASP.NET utiliza um processador de secção de configuração personalizado, poderá ocorrer uma excepção de oportunidade primeira de violação de acesso do tipo no aspnet_wp.exe (ou processo W3wp.exe, foran aplicação que é executado no Microsoft Internet Information Services IIS 6.0) quando a aplicação do ASP.NET está em pressão.
Causa
Este problema pode ocorrer quando vários threads estão a aceder ao mesmo objecto configuração simultaneamente se a implementação da interface IConfigSectionHandler não for thread de segurança e de estado ou se o objecto que devolve o método Create não for imutável e de segurança do thread.
Resolução
Quando cria um processador da secção Configuração de ASP.NET personalizado, utilize as seguintes directrizes quando implementa a interface de IConfigSectionHandler :
  • As instâncias de classe que implementam a interface IConfigSectionHandler tem de ser optimizada para thread e sem estado.
  • O objecto que o método IConfigurationSectionHandler.Create devolve tem de ser imutável e de segurança do thread.
  • Não modifique o argumento principal para o método IConfigurationSectionHandler.Create .
Ponto Da Situação
Este comportamento ocorre por predefinição.
Mais Informação
Instâncias de IConfigSectionHandler tem de ser optimizada para thread e sem estado. Tem de ser possível chamar o método IConfigurationSectionHandler.Create a partir de vários threads em simultâneo.

Além disso, o objecto de configuração gera IConfigurationSectionHandler.Create tem de ser imutável e de segurança do thread. Uma vez que o sistema de configuração coloca em cache os objectos de configuração, é importante que não modifique o argumento "ascendente" para IConfigurationSectionHandler.Create . Por exemplo, se o valor devolvido de IConfigurationSectionHandler.Create é apenas uma pequena modificação de "ascendente", tem de modificar um clone do "principal," não o original.
Referências
Para obter mais informações sobre ASP.NET configuração, clique números de artigo seguinte seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
307626Descrição geral de configuração do ASP.NET
309045Como criar um processador da secção Configuração personalizada ASP.NET no Visual C# .NET
Kbreadme AV

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 307513 - Última Revisão: 02/24/2014 17:51:46 - Revisão: 3.3

  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft .NET Framework 1.1
  • kbnosurvey kbarchive kbmt kbconfig kbhttphandlers kbhttpruntime kbprb kbreadme KB307513 KbMtpt
Esta informação foi útil?