Você está offline; aguardando reconexão

Eventos da Web no ASP.NET 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: 893664
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.
Informações sobre Beta
Este artigo discute uma versão Beta de um Microsoft produto. As informações neste artigo são fornecidas como-é e é sujeito à alteradas sem aviso prévio.

Nenhum suporte formal está disponível no Microsoft para este produto Beta. Para obter informações sobre como obter suporte para uma versão Beta, consulte a documentação que acompanha a versão Beta arquivos do produto ou verifique o local da Web onde você baixou o versão.
Coluna de voz de suporte do ASP.NET
Para personalizar esta coluna às suas necessidades, convidamos você a enviar suas idéias sobre tópicos que interessam a você e problemas que você deseja ver no futuro abordados artigos do Knowledge Base e colunas de voz de suporte. Você pode enviar suas idéias e comentários usando o Peça para ele formulário. Há também um link para o formulário na parte inferior desta coluna.
Introdução
Bem-vindo à coluna voz de suporte do ASP.NET! Meu nome é Jerry Andrade. Ter sido com a Microsoft por 5 anos e ter gasto a maioria dos meus na hora em tecnologias relacionadas à Web como o FrontPage e o novo Tecnologias do SharePoint. Passei o último ano trabalhando com ASP.NET como um engenheiro de suporte.

Este mês na coluna voz de suporte, vou me para descrever o novo recurso de eventos Web fornecido na próxima versão do ASP.NET 2.0.

O recurso de eventos da Web no ASP.NET 2.0

Um dos principais novos serviços fornecidos no ASP.NET 2.0 é a Web Recurso de eventos fornecido pelo sistema de monitoramento de integridade. Modificando o Arquivo Web. config, você pode usar a sistema de monitoração de integridade para log sem tratamento exceções, formulários expirados, tíquetes de autenticação e quaisquer outros dados que você deseja logon no seu aplicativo. Esta coluna irá dar os primeiros passos usando a Web Eventos de recursos e também fornece exemplos de como usar os vários provedores do ASP.NET 2.0.

O log é feito definindo uma regra eventos que associa um provedor. A regra define o tipo de eventos que são enviadas para o provedor. Os seguintes eventos base estão disponíveis para você para efetuar login:
WebBaseEventA classe de evento base para todos os eventos. Contém o propriedades obrigatórias para todos os eventos como código do evento, o código de detalhe do evento, o Data e hora do evento foi gerado, número de seqüência, a mensagem de evento, e detalhes do evento.
WebManagementEventO evento base de classe para eventos de gerenciamento, como tempo de vida do aplicativo, solicitação, erro e eventos de auditoria.
WebHeartbeatEventO evento gerado pelo aplicativo em regular intervalos para capturar informações de estado de tempo de execução útil.
WebAuditEventA classe base para eventos de auditoria de segurança, que são usados para marcar as condições, como falha de autorização, falha de descriptografia, etc.
WebRequestEventA classe base para todos os eventos de solicitação informativo.
WebBaseErrorEventA classe base para todos os eventos que indicam erro condições.
Os tipos de provedores disponíveis permitem que você enviar a saída do evento ao visualizar eventos, SQL Server, Windows Management Instrumentation (WMI), e endereço de email. Os provedores pré-configurados e mapeamentos de evento reduzem a quantidade de trabalho necessário para obter saída de evento registrada.

ASP.NET 2.0 usa o evento Log provedor out-of-the-box para registrar eventos com base em domínios de aplicativo iniciando e parando, bem como efetuar qualquer exceções não tratadas. Isso ajuda a folha de rosto Algumas das situações básicas. Por exemplo, digamos que seu aplicativo lança uma exceção, mas o usuário não salvará o erro e você não pode reproduzi-lo. Com a regra de Log de eventos padrão, você poderá coletar o informações de exceção e a pilha para ter uma idéia melhor do que tipo de erro ocorreu. Ou, se seu aplicativo está perdendo estado da sessão, você pode examinar a Log de eventos para determinar se o domínio de aplicativo é a reciclagem e por que o domínio de aplicativo foi interrompido em primeiro lugar.

Além disso, a integridade sistema de monitoramento é extensível. Por exemplo, você pode definir eventos Web personalizados, acioná-los dentro de seu aplicativo e, em seguida, definir uma regra para enviar o evento informações para um provedor como o seu email. Isso permite que você facilmente unir sua instrumentação para provedores de monitoramento de integridade. Como outro exemplo, Você pode disparar um evento cada vez que um pedido é processado e configurar uma regra que envia a cada evento para o banco de dados do SQL Server. Você também pode disparar um evento quando um usuário não conseguir fazer logon várias vezes em uma linha e configurar o evento para usar o provedores gratuito por e-mail.

A configuração para os provedores padrão e eventos é armazenado no arquivo Web. config global. O arquivo Web. config global armazena todas as configurações baseadas na Web que foram armazenadas no arquivo Machine. config no ASP.NET 1 x. O arquivo Web. config global está localizado no seguinte diretório:
%windir%\Microsoft.Net\Framework\v2.0.*\config\Web.config
A seção <healthMonitoring>do arquivo Web. config global Fornece definições de configuração de padrão. Você pode substituir essa configuração ou definir suas próprias configurações implementando o <healthMonitoring> seção no arquivo Web. config para seu aplicativo.

O <healthMonitoring>seção do arquivo Web. config global contém o itens a seguir: </healthMonitoring></healthMonitoring></healthMonitoring>
  • provedores Contém provedores configurados para o Visualizador de eventos, WMI e SQL Servidor.
  • eventMappings Contém mapeamentos para as várias classes WebBase. Você pode estender Esta lista se você gerar sua própria classe de evento. Gerando sua própria classe de evento Fornece granularidade mais fina sobre os provedores de para que enviar informações. Para exemplo, você pode configurar exceções sem tratamento a ser enviado ao SQL Server, ao enviar seus próprios eventos personalizados para enviar por email.
  • regras Links eventMappings para o provedor.
  • armazenamento em buffer Usada com provedores de email e do SQL Server para determinar com que freqüência Para liberar os eventos para o provedor.
Abaixo está um exemplo de código a partir do arquivo Web. config global.
<healthMonitoring>	<!--  Event Log Provider being added. -->	<providers>      		<add name="EventLogProvider" type="System.Web.Management.EventLogWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />	</providers>	<!--  Event mapping provides a friendly name to the events based on the WebBaseErrorEvent class.  -->	<eventMappings>			<add name="All Errors" type="System.Web.Management.WebBaseErrorEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"						startEventCode="0" endEventCode="2147483647" />	</eventMappings>	<!-- Rule tying the "All Errors" event mapping to the EventLog Provider.  -->	<rules>      		<add name="All Errors Default" eventName="All Errors" provider="EventLogProvider"						profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:01:00"						custom="" />	</rules></healthMonitoring>

Exemplo de provedor

Este exemplo de provedor contém os seguintes arquivos:
  • ViewEvents.aspx o arquivo – dispara o evento de web personalizado MyEvent no evento click do botão Page_Load e Log de eventos . Tem um GridView que usa a conexão de banco de dados na Arquivo Web. config para listar os eventos registrados para SQL Server.

    Não se esqueça de Configure connectionString no arquivo Web. config para apontar para seu banco de dados ASPNETDB .
  • O Web. config – tem todos os vários provedores e regras configuradas e comentado. Tire comentários a regra que você deseja testar e, em seguida, procurar o Default. aspx e ViewEvent.aspx páginas para ver o que é a saída como.
  • MyEvent.cs o arquivo – localizado na pasta App_Data. Isso é usado na Página ViewEvents.aspx para acionar um evento personalizado.
  • Arquivo default. aspx o – lança uma System. NullReferenceException ver sem que um tratamento logs de exceção.
  • EmailTemplateTest.aspx o arquivo – usado para o exemplo de TemplateemailProvider. O arquivo code-behind não para o arquivo EmailTemplateTest.aspx tem linhas de código você pode comentar, que fará com que a página para acionar uma exceção.

Como armazenar eventos em Visualizar eventos

Como mencionei anteriormente, o provedor para log de eventos na Visualizador de eventos está configurado para você no arquivo Web. config global. Por padrão, todos os eventos com base em WebBaseErrorEvent e WebFailureAuditEvent são registrados. Você pode adicionar mais regras adicionais de log informações sobre o log de eventos. Por exemplo, se você quisesse registrar todos os eventos (ou seja, todos os eventos com base em WebBaseEvent), você poderia adicionar a regra a seguir ao seu arquivo Web. config:
<healthMonitoring>	<rules>		<add name="All Events" eventName="All Events" provider="EventLogProvider" profile="Critical"  />	</rules></healthMonitoring>
Esta regra poderia vincular o mapa de eventos de Todos os eventos para o provedor de Log de eventos. Os dois eventMapping e o provedor estão incluídos no arquivo Web. config global. Você pode usar o Página ViewEvents.aspx para acionar os eventos gerados pela página de navegação. O página também acionará o evento personalizado MyEvent no evento Page_Load e um clique de botão .

Para ver o tipo de dados gerados, procurar o Página default. aspx. Isso irá acionar uma exceção System. NullReferenceException e o seguinte evento será registrado no evento Visualizador:

Tipo de evento: aviso
Origem do evento: ASP.NET 2.0.50601.0
Categoria do evento: Evento de Web
Identificação de evento: 1311
Data: 16/8/2005
Tempo: 9: 37: 44 PM
Usuário: n/a
Computador: Nome do computador
Descrição:
Código do evento: 3005
Mensagem de evento: Ocorreu uma exceção não tratada.
Hora do evento: 16/8/2005 9: 37: 44 PM
Hora do evento (UTC): 17/8/2005 2: 37: 44 AM
Identificação do evento: 88838b4e73cf4a0d9a36ac737ff9d1a0
Seqüência de eventos: 39
Ocorrência do evento: 1
Código de detalhes do evento: 0
Informações do aplicativo: domínio de aplicativo: d047d537-2-127687190240098660
Nível de confiança: completo
Aplicativo Virtual Caminho: /WebSite3
Caminho do aplicativo: Físico caminho
Nome do computador: Computador nome
Processar informações: identificação do processo: 3776
Nome do processo: WebDev.WebServer.EXE
Nome da conta: domínio \ usuário
Informações de exceção: Tipo de exceção: NullReferenceException
Mensagem de exceção: referência de objeto não definida para uma instância de um objeto.
Solicitar informações sobre: URL de solicitação: http://localhost:1698/WebSite3/default.aspx
Caminho da solicitação: /WebSite3/default.aspx
Endereço de host do usuário: 127.0.0.1
Usuário: Domínio \ usuário
Está autenticado: verdadeiro
Tipo de autenticação: NTLM
Thread nome da conta: domínio \ usuário
Informações do thread:
Identificação de segmento: 8
Thread nome da conta: domínio \ usuário
Está representando: falso

Rastreamento de pilha: em _Default.Page_Load (object sender, EventArgs e) c:\Documents e Settings\user\Desktop\WebEvents\WebSite3\WebSite3\Default.aspx.cs:line 15
em System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, objeto o, o objeto t, EventArgs e)
em System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e)
em System.Web.UI.Control.OnLoad (EventArgs e) em System.Web.UI.Control.LoadRecursive()
em System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Detalhes do evento personalizado: para obter mais informações informações, consulte o Centro de Ajuda e suporte em http://support.microsoft.com.

Todos os eventos de log para o Log de eventos gera eventos informativos também. O seguinte evento mostra o URL autorização tenham êxito para a solicitação de página:

Evento Tipo: informações
Origem do evento: ASP.NET 2.0.50601.0
Categoria de evento: Web Evento
Identificação de evento: 1314
Data: 16/8/2005
Tempo: 11: 04: 44 PM
Usuário: N/A
Computador: Computador nome
Descrição:
Código do evento: 4003
Mensagem de evento: URL autorização bem-sucedida para a solicitação.
Hora do evento: 16/8/2005 11: 04: 44 PM
Hora do evento (UTC): 17/8/2005 4: 04: 44 AM
Identificação do evento: fec3d73fba0247eaba425e5ccfada18e
Seqüência de eventos: 2
Ocorrência do evento: 1
Código de detalhes do evento: 0
Informações do aplicativo:
Domínio de aplicativo: d047d537-1-127687250829701433
Nível de confiança: completo
Aplicativo Virtual Caminho: /WebSite3
Caminho do aplicativo: C:\Documents e Settings\user\Desktop\WebEvents\WebSite3\WebSite3\
Nome do computador: Nome do computador
Informações do processo:
Processo IDENTIFICAÇÃO: 2292
Nome do processo: WebDev.WebServer.EXE
Nome da conta: Domínio \ usuário
Solicite informações sobre:
URL de solicitação: http://localhost:2087/WebSite3/default.aspx
Caminho da solicitação: /WebSite3/default.aspx
Endereço de host do usuário: 127.0.0.1
Usuário: Domínio \ usuário
Está autenticado: verdadeiro
Tipo de autenticação: NTLM
Thread nome da conta: domínio \ usuário

Detalhes do evento personalizado:
Para obter mais informações informações, consulte o Centro de Ajuda e suporte em http://support.microsoft.com.

Como armazenar eventos para SQL Server

Este método usa o banco de dados ASPNETDB , que é gerado pela ferramenta Aspnet_regsql.exe. O provedor padrão usa a seqüência de conexão LocalSqlServer, que utiliza tanto um banco de dados baseado em arquivo na pasta App_data ou instância SQLExpress local do SQL Server. A seqüência de caracteres de conexão LocalSqlServer e o SqlProvider são configurado no arquivo Web. config global.

O LocalSqlServer seqüência de conexão no arquivo Web. config global tem esta aparência:
<connectionStrings>	<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /></connectionStrings>
Se você quiser usar outro servidor do SQL Server, você precisará usar o Ferramenta de Aspnet_regsql.exe, que pode ser encontrada no pasta de %windir%\Microsoft.Net\Framework\v2.0.*\Aspnet_regsql.exe. Use o Ferramenta de Aspnet_regsql.exe para gerar um banco de dados ASPNETDB personalizado no servidor do SQL Server, em seguida, adicione a cadeia de conexão para o. config de aplicativos de arquivo e, em seguida, adiciona um provedor usando o novo seqüência de conexão. Uma vez que o banco de dados ASPNETDB criado, você precisará definir uma regra para vincular um eventMapping para o sqlProvider.

Para configurar um banco de dados personalizado Siga estas etapas:
  1. Gere um banco de dados ASPNETDB .
    1. Execute aspnet_regsql.exe – w e percorrer o Assistente.
    2. Execute o comando para automatizar o processo: Aspnet_regsql –A – w s SQL Server -E.
  2. Adicionar uma seqüência de conexão que aponta para o banco de dados, portanto que ele tem esta aparência:
    <connectionStrings>	<add name="MYASPNETDB" connectionString="Server=<SQL Instance>;Integrated Security=SSPI;Database=aspnetdb"/></connectionStrings>
  3. Adicionar um provedor para usar a seqüência de conexão MYASPNETDB, portanto que ele tem esta aparência:
    <healthMonitoring>	<providers>		<add name="MySqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider" connectionStringName="MYASPNETDB" maxEventDetailsLength="1073741823" buffer="false"/>	</providers></healthMonitoring>
Se você usa o padrão SqlProvider ou configurar seu próprio provedor, você precisará adicionar uma regra de vinculação o provedor com um mapa de evento. O regra a seguir vincula o novo provedor que você criou acima para o mapa de eventos de Todos os eventos . Esta regra será registrar todos os eventos com base em WebBaseEvent e enviá-las para o MySqlWebEventProvider que usará o Seqüência de conexão MYASPNETDB. O código a seguir adiciona uma regra para vincular a provedor com um mapa de evento:
<healthMonitoring>	<rules>		<add name="All Events" eventName="All Events" provider="MySqlWebEventProvider" profile="Critical"/>	</rules></healthMonitoring>
Se você quiser apenas enviar erros para SQL Server, você pode adicionar a regra a seguir:
<add name="All Errors" eventName="All Errors" provider="MySqlWebEventProvider" profile="Critical"/>

Como encaminhar eventos WMI

Você também pode encaminhar eventos WMI. É o provedor de WMI configurado por você no arquivo Web. config global por padrão.

O exemplo de código a seguir adiciona uma regra para encaminhar os eventos WMI:
<providers>	<add name="WmiWebEventProvider" type="System.Web.Management.WmiWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" /></providers>
Você precisará adicionar uma regra para associar um eventMapping para o provedor e também um aplicativo de escuta do WMI para monitorar os eventos. O exemplo de código a seguir adiciona uma regra para vincular o provedor WMI para o mapa de eventos de Todos os eventos :
<rules>	<add name="All Events" eventName="All Events" provider="WmiWebEventProvider" profile="Critical"  /></rules>
O exemplo de aplicativo de console SampleASPNET usa o objeto ManagementEventWatcher para monitorar eventos e exibi-los no console janela.
Para usar SampleASPNET, siga estas etapas:
  1. Inicie SampleASPNET.exe.
  2. Navegar pela página de ViewEvents.aspx; Quando você fizer isso, você verá eventos listados no aplicativo de console.
  3. Clique em Log eventos Button_Click. A página irá postar de volta e você verá os eventos adicionais também registrados.
Observação Se você estiver monitorando eventos em um computador remoto, a escuta aplicativo precisa estar sendo executado no computador como uma conta com admin acesso.

Como encaminhar eventos para enviar por email

Você também pode encaminhar eventos para enviar por email. Isso permitiria que você obtenha informações sobre o aplicativo diretamente no seu (provavelmente ocultarão) Caixa de entrada. Tome cuidado sobre qual evento você mapear para o provedor de email, como de regras Você pode, inadvertidamente, enviar a mesmo muita informação que pode ser melhor adequado para SQL Server ou o Log de eventos.

Existem dois email provedores, SimpleMailWebEventProvider e TemplatedMailWebEventProvider. Cada tem os mesmos atributos de configuração, com exceção de "modelo" e atributos de "detailedTemplateErrors", que só estão disponíveis na TemplatedMailWebEventProvider.

Observação Nenhum desses provedores de email está configurado para você. Você vai Você precisará adicioná-los ao seu arquivo Web. config.

A principal diferença entre Esses provedores de duas email é que SimpleMailWebEventProvider envia e-mails em um modelo genérico que não pode ser modificado. Adiciona o arquivo Web. config de exemplo Este provedor de email para a lista de provedores configurados usando o seguinte regra:
<add name="mySimple-mailWebEventProvider" type="System.Web.Management.Simple-mailWebEventProvider"to="e-mail@foo.com" from="e-mail@foo.com" maxMessagesPerNotification="1" maxEventsPerMessage="10"buffer="true" bufferMode="Critical Notification"subjectPrefix="Web Events"/>
A regra a seguir também é adicionada ao unir o provedor de email para o mapa de eventos de Todos os eventos :
<add name="All Events" eventName="All Events" provider="mySimple-mailWebEventProvider" profile="Critical"/>
A mensagem de alerta de email é semelhante à seguinte:
Assunto: Notificação de evento 12, parte 1: Web Evento EventsMicrosoft.Samples.WebEvents.MyEvent recebido em / WebSite3

** Informações sobre o aplicativo **
---------------
Domínio de aplicativo: d047d537-9-127687218865923053 Nível de confiança: o caminho Virtual do aplicativo completo: WebSite3 aplicativo caminho: C:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\ máquina nome:<computer name="">

** Eventos de **
---------------
Evento código: 100010
Mensagem de evento: Button1_Click
Hora do evento: 16/8/2005 10: 12: 52 PM
Hora do evento (UTC): 17/8/2005 3: 12: 52 AM
Identificação do evento: seqüência de eventos 6e5cd252d6114a9e98687598dc6b5d50: 12 ocorrência de eventos: evento 5 código de detalhe: 0

Evento personalizado detalhes:

---------------</computer>
Este é um alerta de e-mail mensagem que mostra uma exceção não tratada:
Assunto: Notificação de evento 7, parte 1: Web Evento EventsSystem.Web.Management.WebRequestErrorEvent recebido em / WebSite3

** Informações sobre o aplicativo **
---------------
Domínio de aplicativo: d047d537-5-127687293149504903 Nível de confiança: o caminho Virtual do aplicativo completo: WebSite3 aplicativo caminho: C:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\ máquina nome:<computer name="">

** Eventos de **
---------------
Evento código: 3005
Mensagem de evento: Ocorreu uma exceção não tratada.
Evento tempo: 17/8/2005 12: 17: 37 AM
Hora do evento (UTC): 17/8/2005 5: 17: 37 AM
Identificação do evento: seqüência de eventos de 14b7f24102e140bbbae302d80e5a5f36: evento 7 ocorrência: código de detalhe do 1 evento: 0

Informações do processo:
Processo IDENTIFICAÇÃO: 2292
Nome do processo: WebDev.WebServer.EXE
Nome da conta: Domínio \ usuário

Informações de exceção:
Tipo de exceção: System. NullReferenceException
Mensagem de exceção: referência de objeto não definida para uma instância de um objeto.

Solicite informações sobre:
URL de solicitação: http://localhost:2087/WebSite3/default.aspx
Caminho da solicitação: /WebSite3/default.aspx
Endereço de host do usuário: 127.0.0.1
Usuário: Domínio \ usuário
Está autenticado: verdadeiro
Tipo de autenticação: NTLM
Thread nome da conta: domínio \ usuário

Informações do thread:
ID do thread: 7
Nome da conta de thread: domínio \ usuário
Está representando: falso
Pilha rastreamento: em _Default.Page_Load (Object sender, EventArgs e) c:\Documents e Settings\user\Desktop\WebEvents\WebSite3\WebSite3\Default.aspx.cs:line 15
em System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, objeto o, o objeto t, EventArgs e)
em System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e)
em System.Web.UI.Control.OnLoad (EventArgs e) em System.Web.UI.Control.LoadRecursive()
em System.WebUI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)</computer>
TemplatedMailWebEventProvider permite que você especifique uma página ASPX como um modelo-- você já entendeu –. O saída da página ASPX é usada no corpo do email, permitindo que você Personalize a aparência dos dados recebidos.

O aplicativo de exemplo usa o código a seguir para adicionar TemplatedMailWebEventProvider a Web. config o arquivo e especificar a página de EmailTemplateTest.aspx como o modelo. (O Página EmailTemplateTest.aspx percorre os eventos disponíveis no buffer, e os exibe em uma tabela.)
<add name="myTemplatedMailWebEventProvider" type="System.Web.Management.TemplatedMailWebEventProvider"to="e-mail@foo.com" from="e-mail@foo.com " buffer="true"bufferMode="Critical Notification" maxMessagesPerNotification="10" maxEventsPerMessage="10"template="e-mailTemplateTest.aspx" detailedTemplateErrors="false" />
A mensagem de alerta de email é semelhante à seguinte:
Assunto: Notificação de evento 3, parte 1: 10 eventos recebidos em / WebSite3

Mensagem do código de ocorrência fonte tempo código detalhes
4 System.Web.Security.UrlAuthorizationModule 17/8/2005 12: 40: 45 AM 4003 0 URL autorização bem-sucedida para a solicitação.
4 8/17/2005 12: 40: 45 AM 4004 0 Êxito da autorização de arquivo para a solicitação.
7 ASP.ViewEvents_aspx 17/8/2005 12: 40: 45 AM 100010 0 carregar página de exemplo webevent
8 ASP.ViewEvents_aspx 17/8/2005 12: 40: 45 AM 100010 0 Button1_Click
5 SystemWeb.Security.UrlAuthorizationModule 17/8/2005 12: 40: 45 AM 4003 0 URL autorização bem-sucedida para a solicitação.
5 8/17/2005 12: 40: 45 AM 4004 0 Êxito da autorização de arquivo para a solicitação.
9 ASP.ViewEvents_aspx 17/8/2005 12: 40: 45 AM 100010 0 carregar página de exemplo webevent
10 ASP.ViewEvents_aspx 17/8/2005 12: 40: 45 AM 100010 0 Button1_Click
6 System.Web.Security.UrlAuthorizationModule 17/8/2005 12: 40: 46 AM 4003 0 URL autorização bem-sucedida para a solicitação.
6 8/17/2005 12: 40: 46 AM 4004 0 Êxito da autorização de arquivo para a solicitação.
Em ambos os casos, se o atributo de buffer for false, o email conterá apenas um evento. Com armazenamento em buffer definido como true, você também precisará especificar um bufferMode, que indica como muitas vezes liberar o buffer. Há alguns bufferModes padrão global Arquivo Web. config.

Se detailedTemplateErrors = "true", em seguida, todos os erros que ocorrem quando você executa o modelo será enviado no corpo das endereço de email. Se detailedTemplateErrors = "false", um erro genérico é enviado.

A lançada por EmailTemplateTest.aspx de erro detalhada é semelhante a:
Erro do servidor em ' / WebSite3' aplicativo.

Sem um tratamento Ocorreu uma exceção durante a execução da página de modelo usada para criar Esta notificação de evento. 1 Os eventos que fazem parte desta mensagem foram descartados.

Descrição: Uma exceção não tratada ocorreu durante a execução de solicitação da web atual. Examine o rastreamento de pilha para obter mais informações informações sobre o erro e onde foi originado no código.

Detalhes da exceção: System.Web.HttpException: can do estado de sessão apenas ser usado quando enableSessionState estiver definido como verdadeiro, em uma configuração arquivo ou na diretiva Page. Certifique-se também que System.Web.SessionStateModule ou um módulo de estado de sessão personalizado está incluído no o <configuration>\<system.web>\<httpModules> seção o configuração de aplicativo.

Arquivo de origem: c:\Documents e Settings\user\Desktop\WebEvents\WebSite3\WebSite3\e-mailTemplateTest.aspx.cs Linha: 17

Rastreamento de pilha: [HttpException (0x80004005): o estado da sessão pode apenas ser usado quando enableSessionState estiver definido como verdadeiro, em uma configuração arquivo ou na diretiva Page. Certifique-se também que System.Web.SessionStateModule ou um módulo de estado de sessão personalizado está incluído no o <configuration>\<system.web>\<httpModules> seção o configuração do aplicativo.]
System.Web.UI.Page.get_Session() +146
e-mailTemplateTest.Page_Load(Object sender, EventArgs e) em c:\Documents e Settings\user\Desktop\WebEvents\WebSite3\WebSite3\e-mailTemplateTest.aspx.cs:17
System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr FP, objeto o, o objeto t, EventArgs e) + 13
System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e) +45
System.Web.UI.Control.OnLoad (EventArgs e) +80
SystemWeb.UI.Control.LoadRecursive() +49
System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3749

[HttpUnhandledException (0x80004005): exceção do tipo 'System.Web.HttpUnhandledException' foi lançada].
System.Web.UI.Page.HandleError (exceção e) +929
System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +7864
System.Web.UI.Page.ProcessRequest (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +229
System.Web.UI.Page.ProcessRequest() + 12
System.Web.UI.Page.ProcessRequest (HttpContext contexto) +80
System.Web.HttpServerUtility.ExecuteInternal (IHttpHandler manipulador, TextWriter gravador, Boolean preserveForm, caminho VirtualPath, VirtualPath filePath, seqüência de caracteres physPath, erro de exceção, queryStringOverride de seqüência de caracteres) +1012

[HttpException (0x80004005): erro ao executar a solicitação filho para / WebSite3/e-mailTemplateTest.aspx.]
System.Web.HttpServerUtility.ExecuteInternal (IHttpHandler manipulador, TextWriter gravador, Boolean preserveForm, caminho VirtualPath, VirtualPath filePath, seqüência de caracteres physPath, erro de exceção, queryStringOverride de seqüência de caracteres) +1525
System.Web.HttpServerUtility.Execute (caminho de cadeia de caracteres, TextWriter gravador, Boolean preserveForm) +754
System.Web.HttpServerUtility.ExecuteLocalRequestAndCaptureResponse (cadeia de caracteres caminho, TextWriter gravador, ErrorFormatterGenerator errorFormatterGenerator) +249</httpModules></system.web></configuration></httpModules></system.web></configuration>
Se o atributo for falso e há um erro, você irá apenas Obtenha uma mensagem de erro genérica, que tem esta aparência:
Servidor Erro no ' / WebSite3' aplicativo.

Ocorreu uma exceção não tratada durante a execução da página de modelo usada para criar este evento notificação. Os 8 eventos que fazem parte desta mensagem foram descartados.

Descrição: A configuração atual impede o detalhes da exceção sejam incluídos nesta mensagem. Adicionar a "detailedTemplateErrors = true" atributo para a configuração do provedor para permitir detalhes da exceção sejam relatados.
Observação Para os atributos relacionados ao armazenamento em buffer, cada liberação resulta em um notificação. Se a liberação contém mais eventos que permite maxEventsPerMessage , a notificação será desmembrada em vários emails, mas eles são todos ainda considerados como sendo a mesma notificação. Por exemplo, um Flush gera 13 eventos, mas maxEventsPerMessage permite que apenas cinco. Você receberá três mensagens de correio electrónico: os dois primeiros e-mails cada uma conterá cinco eventos e o terceiro email conterá três eventos.

Se houver mais e-mails que permite maxMessagesPerNotification , alguns eventos são descartados. Por exemplo, se você definir maxMessagesPerNotification para dois e você usar o mesmo maxEventsPerMessage como acima, você receberia apenas dois emails. Os eventos que seria na terceira email são descartados. Qualquer quedas ou truncamento de notificações serão relatadas em um dos e-mails para o provedor de correio simples. Na parte superior do email será exibido o seguinte:
** Avisos **
---------------
Os 10 eventos restantes para isso período de notificação será descartado porque o número máximo de mensagens permitido por notificação foi excedida. (Identificação de aviso: 101)
Desde que você ter controle do formato do email para o modelo provedor, você tem Para verificar para descartes/truncamento e determinar se deseja incluir isso em o email.

Observação Provedores de email usam System.Net.Mail, para que você precise configurar System.Net.Mail no seu arquivo Web. config.

Para obter mais informações informações sobre o esquema de configurações do ASP.NET, visite o seguinte Microsoft Web site:
healthMonitoring Element (ASP.NET Settings Schema)
http://msdn2.microsoft.com/Library/2fwh2ss9(en-US,vs.80).aspx
Para obter mais informações sobre o monitoramento da integridade do ASP.NET 2.0, visite o seguinte site da Microsoft:
Como usar o monitoramento da integridade do ASP.NET 2.0
http://msdn2.microsoft.com/en-us/library/ms998306.aspx
Como sempre, fique à vontade enviar idéias sobre tópicos que você deseja no futuro abordada colunas ou na Base de dados de conhecimento usando o Peça para ele formulário.

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 893664 - Última Revisão: 11/30/2012 17:22:00 - Revisão: 5.0

Microsoft ASP.NET 2.0

  • kbhowto kbasp kbmt KB893664 KbMtpt
Comentários
/html>