ID do artigo: 893664 - Última revisão: quarta-feira, 14 de março de 2007 - Revisão: 3.3

Eventos da Web no ASP.NET 2.0

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.
Informações de versão beta
Este artigo aborda uma versão beta de um Microsoft produto. As informações neste artigo são fornecidas como - é e estão sujeitas a alterações sem aviso prévio.

Nenhum suporte formal está disponível da Microsoft para este produto beta. Para obter informações sobre como obter suporte para uma versão beta, consulte a documentação que acompanha o Beta arquivos do produto ou verifique o local da Web onde você a versão foi baixada.
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 abordados artigos do Knowledge Base no futuro e colunas de voz de suporte. Você pode enviar suas idéias e comentários usando o formulário Ask For It (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) . Há também um link para o formulário na parte inferior desta coluna.

Nesta página

Expandir tudo | Recolher tudo

Introdução

Bem-vindo à coluna ASP.NET suporte voz! Meu nome é Jerry Andrade. Eu foram com a Microsoft por 5 anos e passaram a maior parte do meu tempo que se concentra na tecnologias relacionadas à Web, como o FrontPage e as novas tecnologias SharePoint. Passei o ano passado, trabalhar com ASP.NET como um engenheiro de suporte.

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

O recurso de eventos Web do ASP.NET 2.0

Um dos principais serviços novos fornecidos no ASP.NET 2.0 é a Web eventos recurso fornecido pelo sistema de monitoramento de integridade. Modificando o arquivo Web.config, você pode usar a sistema de monitoramento de integridade para fazer exceções sem tratamento, formulários expirados, tíquetes de autenticação e quaisquer outros dados que você deseja registrados no seu aplicativo. Esta coluna obterá iniciado usando o recurso de eventos Web e também fornece exemplos de como usar vários provedores no ASP.NET 2.0.

Log é realizado, definindo uma regra que associa a um provedor de eventos. A regra define o tipo de eventos que são enviadas para o provedor. Os seguintes eventos base estão disponíveis para você fazer logon:
Recolher esta tabelaExpandir esta tabela
WebBaseEvent A classe de evento base para todos os eventos. Contém o necessário seqüência de propriedades para todos os eventos como código do evento, código de detalhes do evento, a data e hora o evento foi gerado, número, a mensagem de evento e os detalhes do evento.
WebManagementEvent A classe de evento base para eventos de gerenciamento, como tempo de vida do aplicativo, de solicitação, erro e eventos de auditoria.
WebHeartbeatEvent O evento gerado pelo aplicativo em intervalos regulares para capturar informações de estado útil em tempo de execução.
WebAuditEvent A classe base para eventos de auditoria de segurança, que são usados para marcar condições, como Falha de autorização, falha de descriptografia, etc.
WebRequestEvent A classe base para todos os eventos de solicitação informativas.
WebBaseErrorEvent A classe base para todos os eventos que indica as condições de erro.
Os tipos de provedores disponíveis permitem que você enviar saída de evento para visualizar eventos, SQL Server, (WMI) e email. O provedores pré-configurados e mapeamentos de evento reduzir a quantidade de trabalho necessário para obter saída de evento registrada.

ASP.NET 2.0 usa o log de eventos provedor-de-pronta para registrar eventos com base em domínios de aplicativo iniciando e parando, bem como fazer todas as exceções sem tratamento. Isso ajuda a abordar alguns dos cenários básicos. Por exemplo, digamos que seu aplicativo lança uma exceção, mas o usuário não salvar o erro e não é possível reproduzi-lo. Com a regra de log de eventos padrão, você poderá coletar as informações de exceção e 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 procurar no log de eventos para determinar se o domínio do aplicativo é reciclagem e por que o domínio do aplicativo foi interrompido em primeiro lugar.

Além disso, a sistema de monitoramento de integridade é extensível. Por exemplo, você pode definir eventos Web personalizados, acioná-los dentro de seu aplicativo e, em seguida, definir uma regra para enviar as informações de evento para um provedor, como seu email. Isso permite que você facilmente vincular seu instrumentação para o 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 foi disparado um evento quando um usuário tenta fazer logon várias vezes em uma linha e configurar o evento para usar os provedores com email.

A configuração para os eventos e provedores padrão é armazenada no arquivo Web.config global. O arquivo Web.config global armazena todos os as baseado na Web configurações que estavam 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 padrão definições de configuração. Você pode substituir essa configuração ou configurar suas próprias configurações Implementando a seção <healthmonitoring> no arquivo Web.config para seu aplicativo.

A seção <healthmonitoring> do arquivo Web.config global contém os seguintes itens:
  • provedores Contém provedores configurado para o Visualizar eventos, WMI e SQL Server.
  • eventMappings Contém mapeamentos de várias classes WebBase. Você pode estender essa lista se você gerar sua própria classe de evento. Gerar sua própria classe de evento lhe granularidade mais refinada sobre os provedores de que enviar informações para. Por exemplo, você pode configurar exceções não tratadas sejam enviadas para SQL Server, ao enviar seus próprios eventos personalizados ao email.
  • regras Vincula o eventMappings para o provedor.
  • armazenamento em buffer Usada com provedores SQL Server e o email para determinar como freqüentemente liberar os eventos para o provedor.
Abaixo está um exemplo de código 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:
  • arquivo ViewEvents.aspx o ? dispara o evento de web personalizado MyEvent no evento click do botão Page_Load e evento de log . Tem um GridView que usa a conexão de banco de dados no arquivo Web.config para lista os eventos registrados para o SQL Server.

    Certifique-se configurar o connectionString no arquivo Web.config para apontar para o banco de dados ASPNETDB .
  • arquivo Web.config o ? possui todos os vários provedores e regras configuradas e comentada. Retire os comentários na regra que você deseja testar e procure as páginas de Default.aspx e ViewEvent.aspx para ver a aparência da saída.
  • arquivo MyEvent.cs o ? localizados 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 para ver o que faz uma exceção não tratada.
  • arquivo EmailTemplateTest.aspx o ? usado para o exemplo TemplateemailProvider. O arquivo code-behind para o arquivo EmailTemplateTest.aspx tem linhas de código, você pode remover comentários, que fará com que a página para gerar uma exceção.

Como armazenar eventos em Visualizar eventos

Como mencionei anteriormente, o provedor de eventos de log de eventos visualizar 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 regras adicionais para registrar informações adicionais no log de eventos. Por exemplo, se você quiser registrar todos os eventos ( ou seja , todos os eventos com base em WebBaseEvent ), você pode 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>
essa regra deve vincular o mapa de eventos de Todos os eventos ao provedor de log de eventos. EventMapping e o provedor estão incluídos no arquivo Web.config global. Em seguida, você pode usar a página ViewEvents.aspx para disparar os eventos gerados procurando a página. A 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, procure a página Default.aspx. Isso lançará uma exceção System.NullReferenceException , e o seguinte evento será registrado no evento visualizar:

Tipo de evento: aviso
Origem do evento: ASP.NET 2.0.50601.0
Categoria do evento: Eventos da Web
IDENTIFICAÇÃO de evento: 1311
Data: 16/8/2005
Tempo: 9:37:44 PM
Usuário: N/d
Computador: Computer name
Descrição:
Código do evento: 3005
Mensagem de evento: Ocorreu uma exceção sem tratamento.
Hora do evento: 16/8/2005 9:37:44 PM
Hora do evento (UTC): 17/8/2005 2:37:44 AM
IDENTIFICAÇÃO de evento: 88838b4e73cf4a0d9a36ac737ff9d1a0
Seqüência de eventos: 39
Ocorrência do evento: 1
Código de detalhes do evento: 0
As informações do aplicativo: domínio de aplicativo: d047d537-2-127687190240098660
Nível de confiança: total
Caminho do aplicativo virtual: /WebSite3
Physical path do caminho de aplicativo:
Nome da máquina: Computer name
Processar informações: ID 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: não definida para uma instância de um objeto de referência de objeto.
Solicitar informações: solicitação de URL: http://localhost:1698/WebSite3/Default.aspx
Solicitar caminho: /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
Conta de thread nome: domínio\usuário
Informações do thread:
Identificação do segmento: 8
Conta de thread nome: domínio\usuário
Está representando: FALSO

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

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

Log de todos os eventos no log de eventos gera eventos informativos bem. O seguinte evento mostra o URL autorização subseqüente para a solicitação da página:

Tipo de evento: Informações
Origem do evento: ASP.NET 2.0.50601.0
Categoria do evento: Web eventos
IDENTIFICAÇÃO de evento: 1314
Data: 16/8/2005
Tempo: 11: 04: 44 PM
Usuário: N/d
Computador: Computer name
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 de evento: fec3d73fba0247eaba425e5ccfada18e
Seqüência de eventos: 2
Ocorrência do evento: 1
Código de detalhes do evento: 0
Informações de aplicativo:
Domínio de aplicativo: d047d537-1-127687250829701433
Nível de confiança: total
Caminho do aplicativo virtual: /WebSite3
Caminho do aplicativo: C:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\
Nome da máquina: Computer name
Informações do processo:
Identificação do processo: 2292
Nome do processo: WebDev.WebServer.EXE
Nome da conta: domínio\usuário
Solicite informações sobre:
Solicitar URL: http://localhost:2087/WebSite3/Default.aspx
Solicitar caminho: /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
Conta de thread nome: domínio\usuário

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

Como armazenar eventos para o SQL Server

Esse 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 usa a instância SQLExpress local do SQL Server ou um banco de dados com base em arquivo na pasta App_Data. A seqüência de caracteres de conexão LocalSqlServer e o SqlProvider são configurados no arquivo Web.config global.

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ê desejar usar outro SQL server, você precisará usar a ferramenta Aspnet_regsql.exe, que pode ser encontrada na pasta %windir%\Microsoft.Net\Framework\v2.0.*\Aspnet_regsql.exe. Use a ferramenta Aspnet_regsql.exe para gerar um banco de dados ASPNETDB personalizado no servidor do SQL server e adicionar a seqüência de caracteres de conexão ao arquivo .config aplicativos e adicione um provedor usando a nova seqüência de conexão. Depois de banco de dados ASPNETDB criado, você precisará definir uma regra para vincular um eventMapping o sqlProvider.

Para configurar um banco de dados personalizado, execute 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 - Leste
  2. Adicionar uma seqüência de conexão que aponta para o banco de dados, para que ele se parece com isso:
    <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, para que fique assim:
    <healthMonitoring>
    	<providers>
    		<add name="MySqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider" connectionStringName="MYASPNETDB" maxEventDetailsLength="1073741823" buffer="false"/>
    	</providers>
    </healthMonitoring>
Se você usar o padrão SqlProvider ou configura seu próprio provedor, você precisará adicionar uma regra vinculando o provedor com um mapa de evento. A regra a seguir vincula o novo provedor que você criou acima ao mapa de eventos de Todos os eventos . Esta regra será registrar todos os eventos com base em WebBaseEvent e enviá-los para MySqlWebEventProvider que usará a seqüência de caracteres de conexão MYASPNETDB. O código a seguir adiciona uma regra para vincular o 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 ao SQL Server, você poderá adicionar a seguinte regra:
<add name="All Errors" eventName="All Errors" provider="MySqlWebEventProvider" profile="Critical"/>

Como encaminhar eventos WMI

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

O exemplo de código a seguir adiciona uma regra para encaminhar os eventos para o 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 um aplicativo de escuta do WMI para ouvir os eventos. O exemplo de código a seguir adiciona uma regra para vincular o provedor WMI do mapa de eventos de Todos os eventos :
<rules>
	<add name="All Events" eventName="All Events" provider="WmiWebEventProvider" profile="Critical"  />
</rules>
o aplicativo de console exemplo SampleASPNET usa o objeto ManagementEventWatcher para monitorar os eventos e exibi-las na janela do console.
Para usar SampleASPNET, execute estas etapas:
  1. Inicie SampleASPNET.exe.
  2. Navegar na página ViewEvents.aspx; quando você faz, 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.
Recolher esta imagemExpandir esta imagem
Observação Se você estiver monitorando eventos em um computador remoto, o aplicativo de escutando precisa estar sendo executado no computador como uma conta com acesso de administrador.

Como encaminhar eventos de email

Você também pode encaminhar eventos para email. Isso permitirá que você obter informações sobre seu aplicativo diretamente na caixa de entrada (provavelmente excedente). Cuidado sobre quais regras de evento você mapear para seu provedor de email, como você pode inadvertidamente enviar muita informação que podem ser mais adequadas para SQL Server ou o log de eventos.

Há dois provedores de email, SimpleMailWebEventProvider e TemplatedMailWebEventProvider. Cada tem os atributos de configuração mesmo, com exceção dos atributos de "modelo" e "detailedTemplateErrors", que só estão disponíveis a TemplatedMailWebEventProvider.

Observação Nenhum desses provedores de email está configurado para você. Será necessário adicioná-los a seu arquivo Web.config.

A principal diferença entre esses provedores de duas email é que SimpleMailWebEventProvider envia emails em um modelo genérico não pode ser modificado. The sample Web.config file adds this e-mail provider to the list of configured providers by using the following rule:
<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 para vincular 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 alerta de email é semelhante à seguinte:
Assunto: Notificação de evento 12, parte 1: Web EventsMicrosoft.Samples.WebEvents.MyEvent evento recebido em /WebSite3

Informações de aplicativo ** **
---------------
Domínio de aplicativo: nível de confiança d047d537-9-127687218865923053: caminho virtual do aplicativo completo: WebSite3 aplicativo caminho: C:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\ computador nome_do_usuário: < nome do computador >

** Eventos **
---------------
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 A.M.
IDENTIFICAÇÃO de evento: seqüência de eventos 6e5cd252d6114a9e98687598dc6b5d50: 12 ocorrência de eventos: eventos 5 detalhes código: 0

Personalizado detalhes do evento:

---------------
A seguir há uma mensagem de alerta de email que mostra uma exceção não tratada:
Assunto: Notificação de eventos 7, parte 1: Web EventsSystem.Web.Management.WebRequestErrorEvent evento recebido em /WebSite3

Informações de aplicativo ** **
---------------
Domínio de aplicativo: nível de confiança d047d537-5-127687293149504903: caminho virtual do aplicativo completo: WebSite3 aplicativo caminho: C:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\ computador nome_do_usuário: < nome do computador >

** Eventos **
---------------
Evento código: 3005
Mensagem de evento: Ocorreu uma exceção sem tratamento.
Evento de tempo: 17/8/2005 17: 37 H
Hora do evento (UTC): 17/8/2005 5: 17: 37 AM
Seqüência de eventos do ID do evento: 14b7f24102e140bbbae302d80e5a5f36: evento 7 ocorrência: código de detalhes de 1 evento: 0

Informações do processo:
Identificação do processo: 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: não definida para uma instância de um objeto de referência de objeto.

Solicite informações sobre:
Solicitar URL: http://localhost:2087/WebSite3/Default.aspx
Solicitar caminho: /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
Conta de thread nome: domínio\usuário

Informações do thread:
Identificação do segmento: 7
Nome da conta de thread: domínio\usuário
Está representando: FALSO
Rastreamento de pilha: no _Default.Page_Load (objeto remetente, EventArgs e) em c:\Documents e Settings\user\Desktop\WebEvents\WebSite3\WebSite3\Default.aspx.cs:line 15
em System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
em System.Web.Util.CalliEventHandlerDelegateProxy.Callback (objeto remetente, EventArgs e)
em System.Web.UI.Control.OnLoad (EventArgs e) em System.Web.UI.Control.LoadRecursive()
em System.WebUI.Page.ProcessRequestMain (includeStagesBeforeAsyncPoint Boolean, includeStagesAfterAsyncPoint Boolean)
TemplatedMailWebEventProvider permite que você especificar uma página ASPX como um modelo--você adivinhou ele--. A saída da página ASPX é usada no corpo do email, permitindo que você personalizar a aparência dos dados que é exibida.

O aplicativo de exemplo usa o código a seguir para adicionar TemplatedMailWebEventProvider Web.config arquivo e especificar a página EmailTemplateTest.aspx como o modelo. (A 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 alerta de email é semelhante à seguinte:
Assunto: Notificação de eventos 3, parte 1: 10 eventos recebidos em /WebSite3

Ocorrência fonte tempo código detalhes código mensagem
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 de ê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.
8 5/17/2005 12:40:45 AM 4004 0 de ê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 de êxito da autorização de arquivo para a solicitação.
Em ambos os casos, se o atributo de buffer for false, o email conterá somente um evento. Com buffer definido como true, você também precisará especificar um bufferMode, que indica a freqüência de liberar o buffer. Há alguns bufferModes padrão no arquivo Web.config global.

Se detailedTemplateErrors = "true", e quaisquer erros que ocorrem quando você executar o modelo serão enviados no corpo do email. Se detailedTemplateErrors = "false", um erro genérico é enviado.

Um erro detalhadas lançado por EmailTemplateTest.aspx tem esta aparência:
Erro do servidor em ' / WebSite3 ' aplicativo.

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

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

Detalhes da exceção: System.Web.HttpException: estado de sessão só pode ser usado quando enableSessionState estiver definido como verdadeiro, em um arquivo de configuração ou na diretiva Page. Também verifique se esse System.Web.SessionStateModule ou um módulo de estado de sessão personalizado está incluído na seção <configuration>\<system.web>\<httpmodules> na configuração do aplicativo.

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

Rastreamento de pilha: [HttpException (0 x 80004005): estado de sessão só pode ser usado quando enableSessionState estiver definido como verdadeiro, em um arquivo de configuração ou na diretiva Page. Também verifique se esse System.Web.SessionStateModule ou um módulo de estado de sessão personalizado está incluído na seção <configuration>\<system.web>\<httpmodules> na configuração do aplicativo.]
System.Web.UI.Page.get_Session() +146
e-mailTemplateTest.Page_Load(Object sender, EventArgs e) in c:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\e-mailTemplateTest.aspx.cs:17
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr FP, Object o, Object 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 (includeStagesBeforeAsyncPoint Boolean, Boolean includeStagesAfterAsyncPoint) +3749

[HttpUnhandledException (0 x 80004005): exceção do tipo 'System.Web.HttpUnhandledException' foi lançada.]
System.Web.UI.Page.HandleError (exceção e) +929
System.Web.UI.Page.ProcessRequestMain (includeStagesBeforeAsyncPoint Boolean, Boolean includeStagesAfterAsyncPoint) +7864
System.Web.UI.Page.ProcessRequest (includeStagesBeforeAsyncPoint Boolean, Boolean includeStagesAfterAsyncPoint) +229
System.Web.UI.Page.ProcessRequest() +12
System.Web.UI.Page.ProcessRequest (contexto de HttpContext) +80
System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler Handler, TextWriter Writer, Boolean preserveForm, VirtualPath Path, VirtualPath filePath, String physPath, Exception Error, String queryStringOverride) +1012

[HttpException (0 x 80004005): erro execução filho solicitação para /WebSite3/e-mailTemplateTest.aspx.]
System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler Handler, TextWriter Writer, Boolean preserveForm, VirtualPath Path, VirtualPath filePath, String physPath, Exception Error, String queryStringOverride) +1525
System.Web.HttpServerUtility.Execute (String de caminho, TextWriter gravador, Boolean preserveForm) +754
System.Web.HttpServerUtility.ExecuteLocalRequestAndCaptureResponse(String Path, TextWriter Writer, ErrorFormatterGenerator errorFormatterGenerator) +249
Se o atributo for FALSO e não houver erro, você só receberá uma mensagem de erro genérica, que tem esta aparência:
Erro do servidor Em ' / WebSite3 ' aplicativo.

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

Descrição: A configuração atual impede os detalhes da exceção sendo incluído nesta mensagem. Adicionar a "detailedTemplateErrors = true" atributo na configuração do provedor para ativar os detalhes da exceção sejam relatados.
Observação Para atributos relacionados ao armazenamento em buffer, cada liberação resulta em uma notificação. Se a liberação contém mais eventos que permite maxEventsPerMessage , a notificação será desmembrada em vários emails, mas eles todos ainda são considerados para ser a mesma notificação. Por exemplo, uma liberação gera 13 eventos, mas maxEventsPerMessage somente permite que cinco. Você obterá três emails: cada duas primeiras emails irão conter cinco eventos e o terceiro email conterá três eventos.

Se houver mais emails que permite maxMessagesPerNotification , alguns eventos são descartados. Por exemplo, se você definir maxMessagesPerNotification para dois e você usar o mesmo maxEventsPerMessage como acima, deve receber somente dois emails. Os eventos que seriam no terceiro email são ignorados. Qualquer quedas ou truncamento de notificações será ser observado em um dos emails para o provedor de simple mail. Parte superior do email será exibido o seguinte:
** Avisos **
---------------
Os 10 eventos restantes para esse período de notificação serão descartados porque o número máximo de mensagens permitido por notificação foi excedido. (Identificação de aviso: 101)
Como você têm controle do formato do email para o modelo de provedor, você precisa verificar para posicionamentos/truncamento você mesmo e determinar se deseja que incluir no 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 sobre o recurso de eventos Web no ASP.NET 2.0, você pode baixar os arquivos de exemplo de eventos da Web a seguir.
Recolher esta imagemExpandir esta imagem
Download
Download the Web Events Sample.exe package now. (http://download.microsoft.com/download/a/1/e/a1ea5122-a6c4-4331-bad8-8556f256004c/web events sample.exe)
Para obter mais informações no esquema de configurações do ASP.NET, visite o seguinte site:
healthMonitoring Element (ASP.NET Settings Schema)
http://msdn2.microsoft.com/library/2fwh2ss9(en-us,vs.80).aspx (http://msdn2.microsoft.com/library/2fwh2ss9(en-us,vs.80).aspx)
Para obter mais informações sobre monitoramento de integridade no ASP.NET 2.0, visite o seguinte site:
Como usar o monitoramento de integridade no ASP.NET 2.0
http://msdn2.microsoft.com/en-us/library/ms998306.aspx (http://msdn2.microsoft.com/en-us/library/ms998306.aspx)
como sempre, à vontade enviar idéias sobre tópicos que você deseja abordada no futuro colunas ou na Base de dados de Conhecimento, usando a Ask For It (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) formulário.

A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 2.0
Palavras-chave: 
kbmt kbhowto kbasp KB893664 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 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  (http://support.microsoft.com/kb/893664/en-us/ )
Retired KB ArticleAviso 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.