WebThreadInformation Klas

Definitie

Biedt informatie over de status van een thread in een ASP.NET proces.

public ref class WebThreadInformation sealed
public sealed class WebThreadInformation
type WebThreadInformation = class
Public NotInheritable Class WebThreadInformation
Overname
WebThreadInformation

Voorbeelden

Het volgende codevoorbeeld heeft twee delen. Het eerste is een fragment van een configuratiebestand waarmee ASP.NET een aangepaste gebeurtenis kan gebruiken die gebruikmaakt van het type WebThreadInformation. De tweede toont hoe u de aangepaste gebeurtenis implementeert die gebruikmaakt van het WebThreadInformation type.

Zorg ervoor dat uw aangepaste gebeurtenis op het juiste moment wordt gegenereerd, dat wil gezegd, wanneer de equivalente systeemstatus gebeurtenis die wordt vervangen, wordt gegenereerd.

<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

Opmerkingen

ASP.NET statuscontrole maakt het productie- en operationele personeel mogelijk om geïmplementeerde webtoepassingen te beheren. De System.Web.Management naamruimte bevat de statusgebeurtenistypen die verantwoordelijk zijn voor het verpakken van statusgegevens van toepassingen en de providertypen die verantwoordelijk zijn voor het verwerken van deze gegevens. Het bevat ook ondersteunende typen die u helpen tijdens het beheer van statusevenementen.

Exemplaren van de WebThreadInformation klasse bevatten informatie die wordt verkregen met behulp van het WebErrorEvent type of het WebRequestErrorEvent type.

Uw toepassing heeft de juiste machtigingen nodig voor toegang tot beveiligde gegevens die door dit type worden verstrekt.

Note

In de meeste gevallen kunt u de ASP.NET statuscontroletypen gebruiken zoals geïmplementeerd en u kunt het systeem voor statusbewaking beheren door waarden op te geven in de sectie healthMonitoring configuratie. U kunt ook afleiden van de statuscontroletypen om uw eigen aangepaste gebeurtenissen en providers te maken. Zie het voorbeeld in dit onderwerp voor een voorbeeld van het maken van een aangepaste gebeurtenisklasse.

Eigenschappen

Name Description
IsImpersonating

Hiermee wordt de huidige thread-imitatiemodus opgehaald.

StackTrace

Hiermee haalt u de huidige thread-beheerde stacktracering op.

ThreadAccountName

Hiermee haalt u de naam van het threadaccount op.

ThreadID

Hiermee haalt u de huidige thread-id op.

Methoden

Name Description
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
FormatToString(WebEventFormatter)

Hiermee wordt threadgerelateerde informatie opgemaakt.

GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Van toepassing op

Zie ook