WebThreadInformation Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Fornece informações sobre o estado de um thread num processo ASP.NET.
public ref class WebThreadInformation sealed
public sealed class WebThreadInformation
type WebThreadInformation = class
Public NotInheritable Class WebThreadInformation
- Herança
-
WebThreadInformation
Exemplos
O seguinte exemplo de código tem duas partes. O primeiro é um excerto de um ficheiro de configuração que permite ASP.NET usar um evento personalizado que utiliza o tipo WebThreadInformation. A segunda mostra como implementar o evento personalizado que utiliza o WebThreadInformation tipo.
Assegure-se de que o seu evento personalizado é ativado no momento certo, ou seja, quando o evento de saúde do sistema equivalente que substitui será ativado.
<healthMonitoring
heartBeatInterval="0" enabled="true">
<profiles>
<add name="Custom"
minInstances="1"
maxLimit="Infinite"
minInterval="00:00:00" />
</profiles>
<eventMappings>
<add
name="SampleWebThreadInformation"
type="SamplesAspNet.SampleWebThreadInformation,webthreadinformation, Version=1.0.1782.29648, Culture=neutral, PublicKeyToken=b3283a2de7dd3f27, processorArchitecture=MSIL" />
</eventMappings>
<rules>
<add name="Custom Web Thread Info Event"
eventName="SampleWebThreadInformation"
provider="EventLogProvider"
profile="Custom" />
</rules>
</healthMonitoring>
using System;
using System.Text;
using System.Web;
using System.Web.Management;
namespace SamplesAspNet
{
// Implements a custom WebErrorstEvent that uses the
// WebThreadInformation.
public class SampleWebThreadInformation :
WebErrorEvent
{
private StringBuilder eventInfo;
// Instantiate events identified
// only by their event code.
public SampleWebThreadInformation(
string msg, object eventSource,
int eventCode, Exception e)
:
base(msg, eventSource, eventCode, e)
{
// Perform custom initialization.
eventInfo = new StringBuilder();
eventInfo.Append(string.Format(
"Event created at: {0}",
EventTime.ToString()));
}
// Raises the event.
public override void Raise()
{
// Perform custom processing.
eventInfo.Append(string.Format(
"Event raised at: {0}",
EventTime.ToString()));
// Raise the event.
base.Raise();
}
// Get the impersonation mode.
public string GetThreadImpersonation()
{
return (string.Format(
"Is impersonating: {0}",
ThreadInformation.IsImpersonating.ToString()));
}
// Get the stack trace.
public string GetThreadStackTrace()
{
return (string.Format(
"Stack trace: {0}",
ThreadInformation.StackTrace));
}
// Get the account name.
public string GetThreadAccountName()
{
return (string.Format(
"Request user host address: {0}",
ThreadInformation.ThreadAccountName));
}
// Get the task Id.
public string GetThreadId()
{
// Get the request principal.
return (string.Format(
"Thread Id: {0}",
ThreadInformation.ThreadID.ToString()));
}
// Formats Web request event information.
public override void FormatCustomEventDetails(
WebEventFormatter formatter)
{
// Add custom data.
formatter.AppendLine("");
formatter.AppendLine(
"Custom Thread Information:");
formatter.IndentationLevel += 1;
// Display the thread information obtained
formatter.AppendLine(GetThreadImpersonation());
formatter.AppendLine(GetThreadStackTrace());
formatter.AppendLine(GetThreadAccountName());
formatter.AppendLine(GetThreadId());
formatter.IndentationLevel -= 1;
formatter.AppendLine(eventInfo.ToString());
}
}
}
Imports System.Text
Imports System.Web
Imports System.Web.Management
' Implements a custom WebErrorstEvent that uses the
' WebThreadInformation.
Public Class SampleWebThreadInformation
Inherits WebErrorEvent
Private eventInfo As StringBuilder
' Instantiate events identified
' only by their event code.
Public Sub New(ByVal msg As String, _
ByVal eventSource As Object, _
ByVal eventCode As Integer, ByVal e As Exception)
MyBase.New(msg, eventSource, eventCode, e)
' Perform custom initialization.
eventInfo = New StringBuilder()
eventInfo.Append(String.Format("Event created at: {0}", EventTime.ToString()))
End Sub
' Raises the event.
Public Overrides Sub Raise()
' Perform custom processing.
eventInfo.Append(String.Format( _
"Event raised at: {0}", EventTime.ToString()))
' Raise the event.
MyBase.Raise()
End Sub
' Get the impersonation mode.
Public Function GetThreadImpersonation() As String
Return String.Format( _
"Is impersonating: {0}", _
ThreadInformation.IsImpersonating.ToString())
End Function 'GetThreadImpersonation
' Get the stack trace.
Public Function GetThreadStackTrace() As String
Return String.Format( _
"Stack trace: {0}", _
ThreadInformation.StackTrace)
End Function 'GetThreadStackTrace
' Get the account name.
Public Function GetThreadAccountName() As String
Return String.Format( _
"Request user host address: {0}", _
ThreadInformation.ThreadAccountName)
End Function 'GetThreadAccountName
' Get the task Id.
Public Function GetThreadId() As String
' Get the request principal.
Return String.Format( _
"Thread Id: {0}", _
ThreadInformation.ThreadID.ToString())
End Function 'GetThreadId
' Formats Web request event information.
Public Overrides Sub FormatCustomEventDetails( _
ByVal formatter As WebEventFormatter)
' Add custom data.
formatter.AppendLine("")
formatter.AppendLine( _
"Custom Thread Information:")
formatter.IndentationLevel += 1
' Display the thread information obtained
formatter.AppendLine(GetThreadImpersonation())
formatter.AppendLine(GetThreadStackTrace())
formatter.AppendLine(GetThreadAccountName())
formatter.AppendLine(GetThreadId())
formatter.IndentationLevel -= 1
formatter.AppendLine(eventInfo.ToString())
End Sub
End Class
Observações
A monitorização do estado do ASP.NET permite que as equipas de produção e operações gerenciem aplicações Web implementadas. O System.Web.Management namespace contém os tipos de eventos de saúde responsáveis por empacotar os dados de estado de saúde da aplicação e os tipos de fornecedores responsáveis pelo processamento desses dados. Inclui também tipos de apoio que ajudam na gestão de eventos de saúde.
As instâncias da WebThreadInformation classe contêm informação obtida usando o WebErrorEvent tipo ou o WebRequestErrorEvent tipo.
A sua aplicação necessita das permissões adequadas para aceder à informação protegida fornecida por este tipo.
Note
Na maioria dos casos, poderá usar os tipos de monitorização de saúde ASP.NET tal como implementados, e controlará o sistema de monitorização de saúde especificando valores na secção de configuração healthMonitoring. Também pode recorrer aos tipos de monitorização de saúde para criar os seus próprios eventos e prestadores personalizados. Para um exemplo de criação de uma classe de evento personalizada, veja o exemplo fornecido neste tópico.
Propriedades
| Name | Description |
|---|---|
| IsImpersonating |
Recebe o modo atual de imitação de thread. |
| StackTrace |
Obtém o rastreio de stack atualmente gerido pela thread. |
| ThreadAccountName |
Fica com o nome da conta do tópico. |
| ThreadID |
Obtém o identificador atual da thread. |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| FormatToString(WebEventFormatter) |
Formata informação relacionada com o tópico. |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |