Eventos da Web em ASP.NET 2.0

Traduções de Artigos Traduções de Artigos
Artigo: 893664 - Ver produtos para os quais este artigo se aplica.
Informações sobre versões beta
Este artigo aborda uma versão Beta do Microsoft produto. As informações neste artigo são fornecidas como-é e está sujeito Altere sem aviso prévio.

Não existe suporte técnico formal está disponível a partir Microsoft para este produto Beta. Para obter informações sobre como obter suporte para uma versão Beta, consulte a documentação incluída com a versão Beta ficheiros do produto ou verifique a localização da Web onde transferiu o libertação.
Coluna de voz de suporte do ASP.NET
Para personalizar esta coluna às suas necessidades, Convidamo submeter as suas ideias sobre tópicos de interesse e os problemas que pretende ver no futuro resolvidos artigos da Base de dados de conhecimento e de colunas de voz de suporte. Pode submeter suas ideias e comentários, utilizando o Pedir formulário. Existe também uma hiperligação para o formulário na parte inferior desta coluna.
Expandir tudo | Reduzir tudo

Nesta página

Introdução

Bem-vindo à coluna voz de suporte ASP.NET! O meu nome estiver Jerry Orman. Ter sido com a Microsoft 5 anos e ter gasto a maior parte do meu tempo focalizada tecnologias relacionadas com a Web como o FrontPage e o novo Tecnologias do SharePoint. Ter gasto a ano passado a trabalhar com o ASP.NET como um engenheiro de suporte.

Este mês na coluna voz de suporte, vou para descrever a nova funcionalidade de eventos da Web fornecida a futura edição do ASP.NET 2.0.

A funcionalidade de eventos da Web do ASP.NET 2.0

Um dos principais serviços novos fornecidos no ASP.NET 2.0 é a Web Funcionalidade de eventos fornecida pelo sistema de vigilância sanitária. Modificando o Ficheiro Web. config, pode utilizar a sistema de monitorização da integridade para o registo não processado excepções, formulários expirados, permissões de autenticação e quaisquer outros dados que pretende sessão iniciada na sua aplicação. Esta coluna terá de começar a utilizar a Web Eventos de funcionalidades e fornece exemplos de como utilizar diferentes fornecedores no ASP.NET 2.0.

O registo é conseguido definindo uma regra eventos que associa um fornecedor. A regra define o tipo de eventos que são enviadas para o fornecedor. Os seguintes eventos base estão disponíveis para iniciar sessão:
Reduzir esta tabelaExpandir esta tabela
WebBaseEventA classe de evento base para todos os eventos. Contém o propriedades necessárias para todos os eventos, como código de evento, o código de detalhe do evento, o data e hora do evento foi accionado, número de sequência, a mensagem de evento, e Detalhes do evento.
WebManagementEventO evento base classe para eventos de gestão, tais como duração da aplicação, pedido, erro e eventos de auditoria.
WebHeartbeatEventO evento gerado pela aplicação em normal intervalos para capturar informações de estado de runtime útil.
WebAuditEventA classe base para eventos de auditoria de segurança, que são utilizados para marcar as condições de falha de autorização, falha de desencriptação, etc.
WebRequestEventA classe base para todos os eventos informativos pedido.
WebBaseErrorEventA classe base para todos os eventos que indiquem o erro condições.
Os tipos de fornecedores disponíveis permitem-lhe enviar a saída de eventos ao evento Visualizador, SQL Server, Windows Management Instrumentation (WMI), e correio electrónico. Os fornecedores pré-configurado e mapeamentos de evento reduzem a quantidade de trabalhos necessários para obter a saída de eventos com sessão iniciada.

O ASP.NET 2.0 utiliza o evento Fornecedor out-of-the-box para registar eventos com base nos domínios de aplicação a iniciar a sessão e parar, bem como de qualquer registo não processados excepções. Isto ajuda a cobrir Alguns dos cenários básicos. Por exemplo, vamos supor que a aplicação throws uma excepção, mas o utilizador não guarda o erro e não pode reproduzi-lo. Com a regra predefinida do registo de eventos, iria conseguir reunir o informações de excepção e na pilha para obter uma ideia melhor do que tipo de erro Ocorreu. Ou, se a aplicação é de perder o estado da sessão, pode procurar na Registo de eventos para determinar se o domínio de aplicação é de reciclagem e por que razão o domínio de aplicação parado em primeiro lugar.

Além disso, o estado de funcionamento sistema de vigilância é extensível. Por exemplo, pode definir eventos personalizados da Web, incêndio-los na aplicação e, em seguida, definir uma regra para enviar o evento informações a um fornecedor, tal como o correio electrónico. Isto permite-lhe ligar facilmente a instrumentação para a saúde, fornecedores de monitorização. Outro exemplo: conseguiu lançar um evento sempre que uma encomenda é processada e configurar uma regra que envia cada evento para a base de dados do SQL Server. Também pode accionar um evento quando um utilizador não conseguir iniciar sessão várias vezes numa linha e configurar o evento para utilizar o fornecedores de baseadas em correio electrónico.

A configuração para os fornecedores predefinidos e eventos são armazenados no ficheiro Web. config global. O ficheiro Web. config global armazena todas as definições baseadas na Web que foram armazenadas no ficheiro Machine. no ASP.NET 1 x. O ficheiro global da Web. config está localizado no seguinte directório:
%windir%\Microsoft.Net\Framework\v2.0.*\config\Web.config
A secção <healthMonitoring>do ficheiro Web. config global Fornece definições de configuração de predefinição. Pode substituir estas definições ou configurar definições próprias, implementando a <healthMonitoring> secção do ficheiro Web. config da aplicação.

O secção <healthMonitoring>do ficheiro Web. config global contém o itens seguintes: </healthMonitoring></healthMonitoring></healthMonitoring>
  • fornecedores Contém fornecedores definido para o Visualizador de eventos, WMI e SQL Servidor.
  • eventMappings Contém mapeamentos para as diferentes classes de WebBase. Pode expandir Esta lista se gerar a sua própria classe de evento. A gerar a sua própria classe de evento dá-lhe melhor granularidade sobre os fornecedores de que enviar informações para. Para exemplo, poderia configurar excepções não processadas para serem enviadas para o SQL Server, ao enviar os seus próprios eventos personalizados para o correio electrónico.
  • regras EventMappings para o fornecedor de hiperligações.
  • memória intermédia Utilizado com fornecedores de correio electrónico e o SQL Server para determinar a frequência Para esvaziar os eventos para o fornecedor.
Segue-se um exemplo de código do ficheiro 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 fornecedor

Este exemplo de fornecedor contém os seguintes ficheiros:
  • ViewEvents.aspx o ficheiro ? activa o evento de web personalizado de MyEvent no evento de clique do botão Page_Load e o evento de registo . Tem uma GridView que utiliza a ligação de base de dados no Ficheiro Web. config para listar os eventos registados para o SQL Server.

    Certifique-se para Configure connectionString no ficheiro Web. config para apontar para a base de dados ASPNETDB .
  • O ficheiro Web. config o ? tem todos os fornecedores e regras configuradas várias e comentadas. Retire o comentário a regra que pretende testar, em seguida, procure o Páginas do default. aspx e ViewEvent.aspx para ver o que lhe parece a saída semelhantes.
  • MyEvent.cs o ficheiro ? localizado na pasta App_Data. Isto é utilizado na Página de ViewEvents.aspx para accionar um evento personalizado.
  • Ficheiro do default. aspx ? lança um System. NullReferenceException para ver não que uma processada registos de excepção.
  • EmailTemplateTest.aspx o ficheiro ? utilizado para a amostra de TemplateemailProvider. O ficheiro de código subjacente para o ficheiro de EmailTemplateTest.aspx tem linhas de código pode comentário, que fará com que a página para accionar uma excepção.

Como armazenar eventos do Visualizador de eventos

Como posso mencionado anteriormente, o fornecedor para registar eventos no Visualizador de eventos está configurado no ficheiro Web. config global. Por predefinição, todos os eventos com base em WebBaseErrorEvent e WebFailureAuditEvent são registados. Pode adicionar regras adicionais para registo adicional informações ao registo de eventos. Por exemplo, se pretender registar todos os eventos (ou seja, todos os eventos com base no WebBaseEvent), pode adicionar a seguinte regra ao ficheiro Web. config:
<healthMonitoring>
	<rules>
		<add name="All Events" eventName="All Events" provider="EventLogProvider" profile="Critical"  />
	</rules>
</healthMonitoring>
Esta regra hiperligação o mapa de eventos de Todos os eventos para o fornecedor de registo de eventos. Ambos os eventMapping e o fornecedor estão incluídos no ficheiro Web. config global. Em seguida, pode utilizar o Página ViewEvents.aspx para accionar os eventos gerados pela página de navegação. O página também irá lançar o acontecimento de personalizado de MyEvent no evento Page_Load e um clique do botão .

Para ver o tipo de dados gerados, procure o Página do default. aspx. Isto irá accionar uma excepção de System. NullReferenceException e o seguinte evento será registado no evento Visualizador:

Tipo de evento: aviso
Origem do evento: ASP.NET 2.0.50601.0
Categoria do evento: Evento de Web
ID do evento: 1311
Data: 16/08/2005
Hora: 9:37:44 PM
Utilizador: n/d
Computador: Nome do computador
Descrição:
Código de evento: 3005
Mensagem de evento: Ocorreu uma excepção não processada.
Hora do evento: 16/08/2005 9:37:44 PM
Hora do evento (UTC): 17/08/2005 2:37:44 AM
ID do evento: 88838b4e73cf4a0d9a36ac737ff9d1a0
Sequência de eventos: 39
Ocorrência do evento: 1
Código de detalhe do evento: 0
Informações da aplicação: domínio de aplicação: d047d537-2-127687190240098660
Nível de fidedignidade: completo
Aplicação Virtual Caminho: /WebSite3
Caminho da aplicação: Físico caminho
Nome do computador: Computador nome
Processar informações: ID do processo: 3776
Nome do processo: WebDev.WebServer.EXE
Nome da conta: domínio \ utilizador
Informações de excepção: Tipo de excepção: NullReferenceException
Mensagem de excepção: referência de objecto não definido para uma instância de um objecto.
Pedir informações: URL do pedido: http://localhost:1698/WebSite3/default.aspx
Caminho do pedido: /WebSite3/default.aspx
Endereço de anfitrião do utilizador: 127.0.0.1
Utilizador: Domínio \ utilizador
Está autenticado: True
Tipo de autenticação: NTLM
Thread nome da conta: domínio \ utilizador
Informações de thread:
ID de thread: 8
Thread nome da conta: domínio \ utilizador
Está representado: False

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

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

Registo de todos os eventos no registo de eventos gera também eventos informativos. O evento que se segue mostra o URL autorização subsequentes para o pedido de página:

Evento Tipo: informação
Origem do evento: O ASP.NET 2.0.50601.0
Categoria de evento: Web Evento
ID do evento: 1314
Data: 8/16/2005
Hora: 11:04:44 PM
Utilizador: N/D
Computador: Computador nome
Descrição:
Código de evento: 4003
Mensagem de evento: URL êxito da autorização para o pedido.
Hora do evento: 16/08/2005 11:04:44 PM
Hora do evento (UTC): 17/08/2005 4:04:44 AM
ID do evento: fec3d73fba0247eaba425e5ccfada18e
Sequência de eventos: 2
Ocorrência do evento: 1
Código de detalhe do evento: 0
Informações da aplicação:
Domínio de aplicação: d047d537-1-127687250829701433
Nível de fidedignidade: completo
Aplicação Virtual Caminho: /WebSite3
Caminho da aplicação: C:\Documents e Settings\user\Desktop\WebEvents\WebSite3\WebSite3\
Nome do computador: Nome do computador
Informações do processo:
Processo ID: 2292
Nome do processo: WebDev.WebServer.EXE
Nome da conta: Domínio \ utilizador
Pedido de informações:
URL do pedido: http://localhost:2087/WebSite3/default.aspx
Caminho do pedido: /WebSite3/default.aspx
Endereço de anfitrião do utilizador: 127.0.0.1
Utilizador: Domínio \ utilizador
Está autenticado: True
Tipo de autenticação: NTLM
Thread nome da conta: domínio \ utilizador

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

Como armazenar eventos para o SQL Server

Este método utiliza a base de dados ASPNETDB , que é gerado pela ferramenta Aspnet_regsql.exe. O fornecedor predefinido utiliza a cadeia de ligação LocalSqlServer, que utilize qualquer um base de dados baseada no ficheiro na pasta App_data ou SQLExpress instância local do SQL Server. A cadeia de ligação LocalSqlServer e a SqlProvider são configurado no ficheiro Web. config global.

O LocalSqlServer cadeia de ligação no ficheiro Web. config global tem o seguinte aspecto:
<connectionStrings>
	<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
</connectionStrings>
Se pretender utilizar outro servidor de SQL Server, terá de utilizar o Ferramenta de Aspnet_regsql.exe, que pode ser encontrada no pasta %Windir%\Microsoft.Net\Framework\v2.0.*\Aspnet_regsql.exe. Utilizar o Ferramenta de Aspnet_regsql.exe para gerar a base de dados personalizada ASPNETDB no servidor de SQL Server, em seguida, adicione a cadeia de ligação para as aplicações config ficheiro e, em seguida, adicionar um fornecedor utilizando o novo cadeia de ligação. Depois da base de dados ASPNETDB criada, terá de definir uma regra para ligar um eventMapping para o sqlProvider.

Para configurar uma base de dados personalizado Siga estes passos:
  1. Gere uma base de dados ASPNETDB .
    1. Executar o aspnet_regsql.exe ?-w e percorra a Assistente.
    2. Execute o comando para automatizar o processo: Aspnet_regsql ?A ? s ? w Servidor SQL -E.
  2. Adicionar uma cadeia de ligação que aponta para a base de dados, por isso que tem o seguinte aspecto:
    <connectionStrings>
    	<add name="MYASPNETDB" connectionString="Server=<SQL Instance>;Integrated Security=SSPI;Database=aspnetdb"/>
    </connectionStrings>
  3. Adicionar um fornecedor para utilizar a cadeia de ligação de MYASPNETDB, por isso que tem o seguinte aspecto:
    <healthMonitoring>
    	<providers>
    		<add name="MySqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider" connectionStringName="MYASPNETDB" maxEventDetailsLength="1073741823" buffer="false"/>
    	</providers>
    </healthMonitoring>
Se utilizar a predefinição SqlProvider ou configurar o seu próprio fornecedor, terá de adicionar uma regra de ligar o fornecedor com um mapa de evento. O seguinte regra liga o novo fornecedor criado anteriormente ao mapa de eventos de Todos os eventos . Esta regra irá registar todos os eventos com base no WebBaseEvent e enviá-los para o MySqlWebEventProvider que irá utilizar o Cadeia de ligação MYASPNETDB. O seguinte código adiciona uma regra para ligar a fornecedor com um mapa de evento:
<healthMonitoring>
	<rules>
		<add name="All Events" eventName="All Events" provider="MySqlWebEventProvider" profile="Critical"/>
	</rules>
</healthMonitoring>
Se pretender apenas enviar erros do SQL Server, pode adicionar a seguinte regra:
<add name="All Errors" eventName="All Errors" provider="MySqlWebEventProvider" profile="Critical"/>

Como reencaminhar os eventos WMI

Também pode reencaminhar os eventos WMI. É o fornecedor WMI configurado no ficheiro Web. config global por predefinição.

O exemplo de código seguinte adiciona uma regra para reencaminhar os eventos de WMI:
<providers>
	<add name="WmiWebEventProvider" type="System.Web.Management.WmiWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
Terá de adicionar uma regra para associar um eventMapping para o fornecedor e também uma aplicação de serviço de escuta WMI para monitorizar os eventos. O exemplo de código seguinte adiciona uma regra para ligar o fornecedor WMI para o mapa de eventos de Todos os eventos :
<rules>
	<add name="All Events" eventName="All Events" provider="WmiWebEventProvider" profile="Critical"  />
</rules>
A aplicação de consola SampleASPNET exemplo utiliza o objecto de ManagementEventWatcher para monitorizar eventos e apresentá-los na consola janela.
Para utilizar SampleASPNET, siga estes passos:
  1. Inicie SampleASPNET.exe.
  2. Procurar a página de ViewEvents.aspx; Quando o fizer, verá eventos listados na aplicação de consola.
  3. Clique em Button_Click de eventos de registo. A página registará novamente e verá os eventos adicionais também registados.
Reduzir esta imagemExpandir esta imagem
893664
Nota Se estiver a monitorizar eventos num computador remoto, a escuta aplicação tem de estar em execução nesse computador como uma conta com admin acesso.

Como para reencaminhamento de eventos de correio electrónico

Também pode reencaminhar os eventos para o correio electrónico. Isto permite-lhe obter informações sobre a aplicação directamente na sua (provavelmente excesso) Receber. Tenha cuidado ao mapear para o fornecedor de correio electrónico, como as regras que eventos inadvertidamente pode enviar-se uma grande quantidade de informações que podem ser melhor adequado para o SQL Server ou o registo de eventos.

Existem dois correio electrónico fornecedores, SimpleMailWebEventProvider e TemplatedMailWebEventProvider. Cada tem os mesmos atributos de configuração, com excepção de "modelo" e atributos de "detailedTemplateErrors", que só estão disponíveis sobre o TemplatedMailWebEventProvider.

Nota Nenhum destes fornecedores de correio electrónico está configurado. Vai necessário para os adicionar ao ficheiro Web. config.

A principal diferença entre Estes fornecedores de correio duas electrónico é que SimpleMailWebEventProvider envia mensagens de correio electrónico em um modelo genérico que não pode ser modificado. Adiciona o ficheiro Web. config de exemplo Este fornecedor de correio electrónico à lista de fornecedores configurados utilizando 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 seguinte regra também é adicionada ao vincular o fornecedor de correio electrónico 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 correio electrónico é semelhante à seguinte:
Objecto: Notificação de eventos 12, parte 1: Web Evento EventsMicrosoft.Samples.WebEvents.MyEvent recebido / WebSite3

* * Informações sobre a aplicação **
---------------
Domínio de aplicação: d047d537-9-127687218865923053 Nível de fidedignidade: Caminho Virtual completo da aplicação: caminho da aplicação WebSite3: 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/08/2005 10:12:52 PM
Hora do evento (UTC): 17/08/2005 3:12:52 AM
ID do evento: sequência de eventos 6e5cd252d6114a9e98687598dc6b5d50: 12 ocorrência do evento: evento 5 código de detalhe: 0

Evento personalizado Detalhes:

---------------</computer>
Segue-se um alerta de correio electrónico mensagem que mostra uma excepção não processada:
Objecto: Notificação de eventos 7, parte 1: Web Evento EventsSystem.Web.Management.WebRequestErrorEvent recebido / WebSite3

* * Informações sobre a aplicação **
---------------
Domínio de aplicação: d047d537-5-127687293149504903 Nível de fidedignidade: Caminho Virtual completo da aplicação: caminho da aplicação WebSite3: 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 excepção não processada.
Evento hora: 17/08/2005 12:17:37 AM
Hora do evento (UTC): 17/08/2005 5:17:37 AM
ID do evento: sequência de eventos 14b7f24102e140bbbae302d80e5a5f36: evento 7 ocorrência: código de detalhe de 1 evento: 0

Informações do processo:
Processo ID: 2292
Nome do processo: WebDev.WebServer.EXE
Nome da conta: Domínio \ utilizador

Informações de excepção:
Tipo de excepção: System. NullReferenceException
Mensagem de excepção: referência de objecto não definido para uma instância de um objecto.

Pedido de informações:
URL do pedido: http://localhost:2087/WebSite3/default.aspx
Caminho do pedido: /WebSite3/default.aspx
Endereço de anfitrião do utilizador: 127.0.0.1
Utilizador: Domínio \ utilizador
Está autenticado: True
Tipo de autenticação: NTLM
Thread nome da conta: domínio \ utilizador

Informações de thread:
ID de thread: 7.
Nome da conta do thread: domínio \ utilizador
Está representado: False
Pilha rastreio: em _Default.Page_Load (remetente do objecto, e de EventArgs) em c:\Documents e Settings\user\Desktop\WebEvents\WebSite3\WebSite3\Default.aspx.CS:line 15
em System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, objecto o, o objecto t, EventArgs e)
em System.Web.Util.CalliEventHandlerDelegateProxy.Callback (remetente do objecto, EventArgs e)
em System.Web.UI.Control.OnLoad (EventArgs e) System.Web.UI.Control.LoadRecursive()
em System.WebUI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)</computer>
TemplatedMailWebEventProvider permite-lhe especificar uma página ASPX como um modelo - lhe Acertou ?. O saída da página ASPX é utilizada no corpo da mensagem de correio electrónico, permitindo-lhe Personalize o aspecto dos dados que receber.

A aplicação de exemplo utiliza o código seguinte para adicionar TemplatedMailWebEventProvider Web. config o ficheiro e especificar a página de EmailTemplateTest.aspx como o modelo. (O EmailTemplateTest.aspx página percorre os eventos disponíveis na memória intermédia, e apresenta-os numa 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 correio electrónico é semelhante à seguinte:
Objecto: Notificação de eventos 3, parte 1:10 eventos recebidos / WebSite3

Mensagem de código de detalhe de código tempo origem ocorrência
4 System.Web.Security.UrlAuthorizationModule 17/08/2005 12:40:45 AM 4003 0 URL êxito da autorização para o pedido.
4. O 8/17/2005 12:40:45 AM 4004 0 Êxito da autorização de ficheiro para o pedido.
7 ASP.ViewEvents_aspx 17/08/2005 12:40:45 AM 100010 0 carregar a página de exemplo webevent
8 ASP.ViewEvents_aspx 17/08/2005 12:40:45 AM 100010 0 Button1_Click
5 SystemWeb.Security.UrlAuthorizationModule 17/08/2005 12:40:45 AM 4003 0 URL êxito da autorização para o pedido.
5. O 8/17/2005 12:40:45 AM 4004 0 Êxito da autorização de ficheiro para o pedido.
9 ASP.ViewEvents_aspx 17/08/2005 12:40:45 AM 100010 0 carregar a página de exemplo webevent
10 ASP.ViewEvents_aspx 17/08/2005 12:40:45 AM 100010 0 Button1_Click
6 System.Web.Security.UrlAuthorizationModule 17/08/2005 12:40:46 AM 4003 0 URL êxito da autorização para o pedido.
6. O 8/17/2005 12:40:46 AM 4004 0 Êxito da autorização de ficheiro para o pedido.
Em ambos os casos, se o atributo de memória intermédia for false, o correio electrónico irá conter apenas um evento. Com armazenamento em buffer definido como true, é também necessário especificar um bufferMode, que indica como a frequência com que pretende esvaziar a memória intermédia. Não existem alguns bufferModes de predefinição global Ficheiro Web. config.

Se detailedTemplateErrors = "true", em seguida, os erros que ocorrem quando executar o modelo será enviado no corpo das correio electrónico. Se detailedTemplateErrors = "false", é enviado um erro genérico.

A accionada por EmailTemplateTest.aspx de erro detalhadas tem o seguinte aspecto:
Erro de servidor em «/ WebSite3' aplicação.

Um não processada Ocorreu uma excepção durante a execução da página de modelo utilizada para criar Esta notificação de eventos. 1 Eventos que faziam parte desta mensagem foram eliminadas.

Descrição: Uma excepção não processada ocorreu durante a execução do pedido web actual. Reveja o rastreio da pilha para obter mais informações sobre o erro e onde foi originado no código.

Detalhes de excepção: System.Web.HttpException: can de estado de sessão apenas ser utilizado quando enableSessionState está definido como true, quer numa configuração ficheiro ou na Directiva página. Certifique-se também que System.Web.SessionStateModule ou um módulo de estado de sessão personalizada está incluído no o <configuration>\<system.web>\<httpModules> secção o configuração da aplicação.

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

Rastreio da pilha: [HttpException (0x80004005): o estado da sessão pode apenas ser utilizado quando enableSessionState está definido como true, quer numa configuração ficheiro ou na Directiva página. Certifique-se também que System.Web.SessionStateModule ou um módulo de estado de sessão personalizada está incluído no o <configuration>\<system.web>\<httpModules> secção o configuração da aplicação.]
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, objecto o, o objecto t, EventArgs e) +13
System.Web.Util.CalliEventHandlerDelegateProxy.Callback (remetente do objecto, EventArgs e) +45
System.Web.UI.Control.OnLoad (EventArgs e) + 80
SystemWeb.UI.Control.LoadRecursive() +49
System.Web.UI.Page.ProcessRequestMain (booleano includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3749

[HttpUnhandledException (0x80004005): excepção do tipo 'System.Web.HttpUnhandledException' foi accionada.]
System.Web.UI.Page.HandleError (excepção e) +929
System.Web.UI.Page.ProcessRequestMain (booleano includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +7864
System.Web.UI.Page.ProcessRequest (booleano includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +229
System.Web.UI.Page.ProcessRequest() + 12
System.Web.UI.Page.ProcessRequest (contexto de HttpContext) + 80
System.Web.HttpServerUtility.ExecuteInternal (IHttpHandler rotina de tratamento, TextWriter escritor, Boolean preserveForm, CaminhoVirtual caminho, VirtualPath filePath, physPath de cadeia, erro de excepção, queryStringOverride de cadeia) +1012

[HttpException (0x80004005): pedido subordinado de execução do erro para / E/WebSite3-mailTemplateTest.aspx.]
System.Web.HttpServerUtility.ExecuteInternal (IHttpHandler rotina de tratamento, TextWriter escritor, Boolean preserveForm, CaminhoVirtual caminho, VirtualPath filePath, physPath de cadeia, erro de excepção, queryStringOverride de cadeia) +1525
System.Web.HttpServerUtility.Execute (caminho de cadeia, TextWriter escritor, Boolean preserveForm) +754
System.Web.HttpServerUtility.ExecuteLocalRequestAndCaptureResponse (cadeia caminho, TextWriter escritor, ErrorFormatterGenerator errorFormatterGenerator) +249</httpModules></system.web></configuration></httpModules></system.web></configuration>
Se o atributo for false e existe um erro, apenas será obter uma mensagem de erro genérico, que tem este aspecto:
Servidor Erro no ' / WebSite3' aplicação.

Ocorreu uma excepção não processada durante a execução da página de modelo utilizada para criar este evento notificação. 8 Eventos que faziam parte desta mensagem foram eliminadas.

Descrição: A configuração actual impede o detalhes de excepção sejam incluídos nesta mensagem. Adicionar a "detailedTemplateErrors = true" do atributo à configuração do fornecedor para activar detalhes de excepção deve ser comunicada.
Nota Os atributos relacionados com a memória intermédia, cada flush resulta um notificação. Se a flush contiver mais eventos que o permitido de maxEventsPerMessage , a notificação será dividida em várias mensagens de correio electrónico, mas são todos ainda considerados a mesma notificação. Por exemplo, um Flush gera 13 eventos, mas maxEventsPerMessage só permite cinco. Obterá três mensagens de correio electrónico: os dois primeiros cada mensagens de correio electrónico irão conter cinco eventos e o correio electrónico de terceiro irá conter três eventos.

Se existirem mais mensagens de correio electrónico que o permitido de maxMessagesPerNotification , alguns eventos são ignorados. Por exemplo, se definir maxMessagesPerNotification a dois e utilizar o mesmo maxEventsPerMessage acima indicado, apenas receberá duas mensagens de correio electrónico. Os eventos que seria na terceira correio electrónico são ignorados. Qualquer gotas ou truncagem de as notificações serão anotadas numa das mensagens de correio electrónico para o fornecedor de correio simples. A parte superior da mensagem de correio electrónico será apresentado o seguinte:
** Avisos * *
---------------
10 Acontecimentos restante para esta período de notificação será eliminado porque o número máximo de mensagens permitidas por notificação foi excedida. (ID do aviso: 101)
Desde que tem controlo sobre o formato de correio electrónico para o fornecedor de transformada em modelo, ter Para verificar de gotas/truncagem e determinar se pretende incluir que, em mensagem de correio electrónico.

Nota Fornecedores de correio utilizam System.Net.Mail, por isso tem que configurar System.Net.Mail no ficheiro Web. config.

Para mais informações obter informações sobre o esquema de definições do ASP.NET, visite o seguinte Web da Microsoft site:
healthMonitoring de elemento (esquema de definições do ASP.NET)
http://msdn2.microsoft.com/library/2fwh2ss9(en-us,vs.80).aspx
Para mais informações sobre a monitorização da integridade no ASP.NET 2.0, visite o seguinte Web site da Microsoft:
Como utilizar a vigilância da saúde no ASP.NET 2.0
http://msdn2.microsoft.com/en-us/library/ms998306.aspx
Como sempre, livre para submeter ideias sobre tópicos que pretende que o funcionamento no futuro corrigida colunas ou na Knowledge Base utilizando o Pedir formulário.

Propriedades

Artigo: 893664 - Última revisão: 20 de julho de 2013 - Revisão: 4.0
A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 2.0
Palavras-chave: 
kbhowto kbasp kbmt KB893664 KbMtpt
Traduçã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: 893664
Exclusã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.

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com