Você está offline; aguardando reconexão

Erro: Recebe uma mensagem de erro de exceção de segurança ao chamar o método EventLog.WriteEntry usando o nível de acesso EventLogPermissionAccess.Write no .NET Framework 2.0

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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 918122
Sintomas
Considere o seguinte cenário. No Microsoft .NET Framework 2.0, você cria uma instância da classe EventLogPermission , que tem o nível de acesso EventLogPermissionAccess.Write . Você chamar o método EventLogPermission.PermitOnly para restringir o acesso ao código. Em seguida, você chama o método EventLog.WriteEntry para gravar uma entrada no log de eventos. Nesse cenário, você mensagem segurança exceção de erro semelhante à seguinte:
Exceção não tratada: System.Security.SecurityException: solicitação para a permissão do tipo 'System.Diagnostics.EventLogPermission...' falhou.
Como Contornar
Para contornar esse problema, você deve solicitar o nível de acesso EventLogPermissionAccess.Administer antes de chamar o método EventLogPermission.PermitOnly . Depois que você especifica este nível de acesso, você pode chamar o método EventLog.WriteEntry e gravar uma entrada no log de eventos. O exemplo de código a seguir demonstra como gravar uma entrada no log de eventos usando esta solução alternativa.

Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita. Isso inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação para uma finalidade específica. Este artigo presume que você está familiarizados com a linguagem de programação que está sendo demonstrada e com as ferramentas que são usadas para criar e depurar procedimentos. Engenheiros de suporte podem ajudar a explicar a funcionalidade de um determinado procedimento, mas eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades.
using System;using System.Diagnostics;public class TestCase{	public static void Main()	{		EventLogPermission eventLogPermission = new EventLogPermission(EventLogPermissionAccess.Administer, ".");		eventLogPermission.PermitOnly();		EventLog.WriteEntry("Source", "Message");	}}
Situação
A Microsoft confirmou que esse é um problema nos produtos da Microsoft listados na seção "Aplica-se a".
Mais Informações

Etapas para reproduzir o problema

  1. Inicie o Microsoft Visual Studio 2005.
  2. No menu arquivo , aponte para novo e, em seguida, clique em Project .
  3. tipos de projeto em Visual translation from VPE for Csharp .
  4. Em modelos , clique em Console Application .
  5. Digite um nome de projeto e, em seguida, clique em OK .
  6. Na janela código, adicione a linha de código a seguir para as instruções using :
    using System.Diagnostics;
  7. Adicione o seguinte exemplo de código para a função principal :
    EventLogPermission eventLogPermission = new EventLogPermission(EventLogPermissionAccess.Write, ".");eventLogPermission.PermitOnly();EventLog.WriteEntry("Source", "Message");
  8. No menu Build , clique em Build Solution .
  9. No menu Debug , clique em Iniciar sem depuração .

    Observe que o aplicativo lança uma exceção de segurança.
Referências
Para obter mais informações sobre o método CodeAccessPermission.PermitOnly , visite o seguinte Microsoft Developer Network (MSDN) site: Para obter mais informações sobre o método EventLog.WriteEntry , visite o MSDN seguinte site:

Propriedades

ID do Artigo: 918122 - Última Revisão: 12/03/2007 18:46:30 - Revisão: 1.4

Microsoft .NET Framework 2.0, Microsoft Visual C# 2005 Express Edition

  • kbmt kbpending kbcode kbtshoot kbbug KB918122 KbMtpt
Comentários
id"; document.getElementsByTagName("head")[0].appendChild(m);