BufferedWebEventProviderとは? わかりやすく解説

BufferedWebEventProvider クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

バッファリングを必要とするイベント プロバイダ作成するための基本機能提供します

名前空間: System.Web.Management
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public MustInherit Class
 BufferedWebEventProvider
    Inherits WebEventProvider
Dim instance As BufferedWebEventProvider
public abstract class BufferedWebEventProvider
 : WebEventProvider
public ref class BufferedWebEventProvider abstract
 : public WebEventProvider
public abstract class BufferedWebEventProvider
 extends WebEventProvider
public abstract class BufferedWebEventProvider
 extends WebEventProvider
解説解説
使用例使用例

カスタム プロバイダBufferedWebEventProvider クラス派生として作成する方法次のコード例示します。このカスタム プロバイダは、構成されイベントローカル ファイル書き込みます該当するローカル ファイルには、適切なアクセス権与えられている必要があります

Imports System
Imports System.Text
Imports System.IO
Imports System.Web.Management
Imports System.Collections.Generic
Imports System.Collections.Specialized
Imports System.Web



' Implements a custom event provider.

Public Class SampleBufferedWebEventProvider
   Inherits BufferedWebEventProvider
   
   ' The local path of the file where
   ' to store event information.
   Private logFilePath As String
 = String.Empty
   
   ' Holds custom information.
   Private customInfo As StringBuilder
   
   Private fs As FileStream
   
    Private providerName, buffer, bufferModality As
 String
   
   
   Public Sub New()
      ' Perform local initializations.
      ' Path of local file where to store 
      ' event info.
      ' Assure that the path works for you and
      ' that the right permissions are set.
      logFilePath = "C:/test/log.doc"
      
      ' Instantiate buffer to contain 
      ' local data.
      customInfo = New StringBuilder()
   End Sub 'New
    
   
   Public Overrides Sub
 Flush()
      customInfo.AppendLine("Perform custom flush")
        StoreToFile(customInfo, _
        logFilePath, FileMode.Append)
   End Sub 'Flush
   
   ' Initializes the provider.
    Public Overrides Sub
 Initialize(ByVal name As String,
 _
    ByVal config As NameValueCollection)
        MyBase.Initialize(name, config)

        ' Get the configuration information.
        providerName = name
        buffer = SampleUseBuffering.ToString()
        bufferModality = SampleBufferMode

        customInfo.AppendLine(String.Format( _
        "Provider name: {0}", providerName))
        customInfo.AppendLine(String.Format( _
        "Buffering: {0}", buffer))
        customInfo.AppendLine(String.Format( _
        "Buffering modality: {0}", bufferModality))
    End Sub 'Initialize
   
   
   Public ReadOnly Property
 SampleUseBuffering() As Boolean
      Get
         Return UseBuffering
      End Get
    End Property

   
   Public ReadOnly Property
 SampleBufferMode() As String
      Get
         Return BufferMode
      End Get
    End Property

   ' Processes the incoming events.
    ' This method performs custom 
    ' processing and, if buffering is 
    ' enabled, it calls the base.ProcessEvent
    ' to buffer the event information.
    Public Overrides Sub
 ProcessEvent( _
    ByVal eventRaised As WebBaseEvent)

        If UseBuffering Then
            ' Buffering enabled, call the base event to
            ' buffer event information.
            MyBase.ProcessEvent(eventRaised)
        Else
            ' Buffering disabled, store the current event
            ' now.
            customInfo.AppendLine("*** Buffering disabled ***")
            customInfo.AppendLine(eventRaised.ToString())
            ' Store the information in the specified file.
            StoreToFile(customInfo, _
            logFilePath, FileMode.Append)
        End If
    End Sub 'ProcessEvent
   

    Private Function GetEvents( _
    ByVal flushInfo As WebEventBufferFlushInfo)
 _
    As WebBaseEventCollection
        Return flushInfo.Events
    End Function 'GetEvents


    Private Function GetEventsDiscardedSinceLastNotification(
 _
    ByVal flushInfo _
    As WebEventBufferFlushInfo) As Integer
        Return flushInfo.EventsDiscardedSinceLastNotification
    End Function 'GetEventsDiscardedSinceLastNotification


    Private Function GetEventsInBuffer(ByVal
 flushInfo _
    As WebEventBufferFlushInfo) As Integer
        Return flushInfo.EventsInBuffer
    End Function 'GetEventsInBuffer


    Private Function GetLastNotificationTime(ByVal
 flushInfo _
    As WebEventBufferFlushInfo) As DateTime
        Return flushInfo.LastNotificationUtc
    End Function 'GetLastNotificationTime


    Private Function GetNotificationSequence(ByVal
 flushInfo _
    As WebEventBufferFlushInfo) As Integer
        Return flushInfo.NotificationSequence
    End Function 'GetNotificationSequence


    Private Function GetNotificationType(ByVal
 flushInfo _
    As WebEventBufferFlushInfo) _
    As EventNotificationType
        Return flushInfo.NotificationType
    End Function 'GetNotificationType


    ' Processes the messages that have been buffered.
    ' It is called by the ASP.NET when the flushing of 
    ' the buffer is required according to the parameters 
    ' defined in the <bufferModes> element of the 
    ' <healthMonitoring> configuration section.
    Public Overrides Sub
 ProcessEventFlush(ByVal flushInfo _
    As WebEventBufferFlushInfo)

        ' Customize event information to be sent to 
        ' the Windows Event Viewer Application Log.
        customInfo.AppendLine( _
        "SampleEventLogWebEventProvider buffer flush.")

        customInfo.AppendLine(String.Format( _
        "NotificationType: {0}", _
        GetNotificationType(flushInfo)))

        customInfo.AppendLine(String.Format( _
        "EventsInBuffer: {0}", _
        GetEventsInBuffer(flushInfo)))

        customInfo.AppendLine(String.Format( _
        "EventsDiscardedSinceLastNotification: {0}",
 _
GetEventsDiscardedSinceLastNotification( _
flushInfo)))

        ' Read each buffered event and send it to the
        ' Application Log.
        Dim eventRaised As WebBaseEvent
        For Each eventRaised In
 flushInfo.Events
            customInfo.AppendLine(eventRaised.ToString())
        Next eventRaised
        ' Store the information in the specified file.
        StoreToFile(customInfo, logFilePath, _
        FileMode.Append)
    End Sub 'ProcessEventFlush

    ' Performs standard shutdown.
    Public Overrides Sub
 Shutdown()
        ' Here you need the code that performs
        ' those tasks required before shutting 
        ' down the provider.
        ' Flush the buffer, if needed.
        Flush()

    End Sub 'Shutdown

    ' Store event information in a local file.
    Private Sub StoreToFile(ByVal
 [text] _
    As StringBuilder, ByVal filePath As
 String, _
    ByVal mode As FileMode)
        Dim writeBlock As Integer
        Dim startIndex As Integer

        Try

            writeBlock = 256
            startIndex = 0

            ' Open or create the local file 
            ' to store the event information.
            fs = New FileStream(filePath, mode, FileAccess.Write)

            ' Lock the file for writing.
            fs.Lock(startIndex, writeBlock)

            ' Create a stream writer
            Dim writer As New
 StreamWriter(fs)

            ' Set the file pointer to the current 
            ' position to keep adding data to it. 
            ' If you want to rewrite the file use 
            ' the following statement instead.
            ' writer.BaseStream.Seek (0, SeekOrigin.Begin);
            writer.BaseStream.Seek(0, SeekOrigin.Current)

            'If the file already exists it must not 
            ' be write protected otherwise  
            ' the following write operation 
            'fails silently.
            writer.Write([text].ToString())

            ' Update the underlying file
            writer.Flush()

            ' Unlock the file for other processes.
            fs.Unlock(startIndex, writeBlock)

            ' Close the stream writer and 
            'the underlying file     
            writer.Close()

            fs.Close()
        Catch e As Exception
            'Use this for debugging.
            'Never dispaly it!
            Dim ex As String
 = e.ToString()
            Throw New Exception( _
            "[SampleEventProvider] StoreToFile: exception.")
        End Try
    End Sub 'StoreToFile
End Class 'SampleBufferedWebEventProvider



using System;
using System.Text;
using System.IO;
using System.Web.Management;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Web;


 namespace Samples.AspNet.Management
 {
    // Implements a custom event provider.
    public class SampleBufferedWebEventProvider
 :
        BufferedWebEventProvider
    {

        // The local path of the file where
        // to store event information.
        private string logFilePath = string.Empty;

        // Holds custom information.
        private StringBuilder customInfo;

        private FileStream fs;

        private string providerName, 
            buffer, bufferModality;

        public SampleBufferedWebEventProvider()
        {
            // Perform local initializations.

            // Path of local file where to store 
            // event info.
            // Assure that the path works for you and
            // that the right permissions are set.
            logFilePath = "C:/test/log.doc";
            
            // Instantiate buffer to contain 
            // local data.
            customInfo = new StringBuilder();

        }


        public override void  Flush()
        {
            customInfo.AppendLine("Perform custom flush");
            StoreToFile(customInfo, logFilePath, FileMode.Append);
        }


        // Initializes the provider.
        public override void Initialize(string
 name,
         NameValueCollection config)
        {
            base.Initialize(name, config);

            // Get the configuration information.
            providerName = name;
            buffer = SampleUseBuffering.ToString();
            bufferModality = SampleBufferMode;

            customInfo.AppendLine(string.Format(
                "Provider name: {0}", providerName));
            customInfo.AppendLine(string.Format(
                "Buffering: {0}", buffer));
            customInfo.AppendLine(string.Format(
                "Buffering modality: {0}", bufferModality));

        }

        public bool SampleUseBuffering
        {
            get { return UseBuffering; }
        }

        public string SampleBufferMode
        {
            get { return BufferMode; }
        }


        // Processes the incoming events.
        // This method performs custom processing and, 
        // if buffering is enabled, it calls the 
        // base.ProcessEvent to buffer the event
        // information.
        public override void ProcessEvent(
            WebBaseEvent eventRaised)
        {

            if (UseBuffering)
                // Buffering enabled, call the 
                // base event to buffer event information.
                base.ProcessEvent(eventRaised);
            else
            {
                // Buffering disabled, store the 
                // current event now.
                customInfo.AppendLine(
                    "*** Buffering disabled ***");
                customInfo.AppendLine(
                    eventRaised.ToString());
                // Store the information in the specified file.
                StoreToFile(customInfo, 
                    logFilePath, FileMode.Append);
            }
        }

        private WebBaseEventCollection GetEvents(
            WebEventBufferFlushInfo flushInfo)
        {
            return flushInfo.Events;
        }


        private int GetEventsDiscardedSinceLastNotification(
            WebEventBufferFlushInfo flushInfo)
        {
            return flushInfo.EventsDiscardedSinceLastNotification;
        }


        private int GetEventsInBuffer(
            WebEventBufferFlushInfo flushInfo)
        {
            return flushInfo.EventsInBuffer;
        }


        private DateTime GetLastNotificationTime(
            WebEventBufferFlushInfo flushInfo)
        {
            return flushInfo.LastNotificationUtc;
        }

        
        private int GetNotificationSequence(
            WebEventBufferFlushInfo flushInfo)
        {
            return flushInfo.NotificationSequence;
        }


        private EventNotificationType GetNotificationType(
            WebEventBufferFlushInfo flushInfo)
        {
            return flushInfo.NotificationType;
        }



        // Processes the messages that have been buffered.
        // It is called by the ASP.NET when the flushing of 
        // the buffer is required.
        public override void ProcessEventFlush(
            WebEventBufferFlushInfo flushInfo)
        {

            // Customize event information to be sent to 
            // the Windows Event Viewer Application Log.
            customInfo.AppendLine(
                "SampleEventLogWebEventProvider buffer flush.");

            customInfo.AppendLine(
                string.Format("NotificationType: {0}"
,
                GetNotificationType(flushInfo)));

            customInfo.AppendLine(
                string.Format("EventsInBuffer: {0}"
,
                GetEventsInBuffer(flushInfo)));

            customInfo.AppendLine(
                string.Format(
                "EventsDiscardedSinceLastNotification: {0}",
                GetEventsDiscardedSinceLastNotification(flushInfo)));

           
            // Read each buffered event and send it to the
            // Application Log.
            foreach (WebBaseEvent eventRaised in
 flushInfo.Events)
                customInfo.AppendLine(eventRaised.ToString());

            // Store the information in the specified file.
            StoreToFile(customInfo, logFilePath, FileMode.Append);
        }

        // Performs standard shutdown.
        public override void Shutdown()
        {
            // Here you need the code that performs
            // those tasks required before shutting 
            // down the provider.

            // Flush the buffer, if needed.
            Flush();
            
        }

        // Store event information in a local file.
        private void StoreToFile(StringBuilder
 text,
            string filePath, FileMode mode)
        {
            int writeBlock;
            int startIndex;

            try
            {

                writeBlock = 256;
                startIndex = 0;

                // Open or create the local file 
                // to store the event information.
                fs = new FileStream(filePath,
                    mode, FileAccess.Write);

                // Lock the file for writing.
                fs.Lock(startIndex, writeBlock);

                // Create a stream writer
                StreamWriter writer = new StreamWriter(fs);

                // Set the file pointer to the current 
                // position to keep adding data to it. 
                // If you want to rewrite the file use 
                // the following statement instead.
                // writer.BaseStream.Seek (0, SeekOrigin.Begin);
                writer.BaseStream.Seek(0, SeekOrigin.Current);

                //If the file already exists it must not 
                // be write protected otherwise  
                // the following write operation fails silently.
                writer.Write(text.ToString());

                // Update the underlying file
                writer.Flush();

                // Unlock the file for other processes.
                fs.Unlock(startIndex, writeBlock);

                // Close the stream writer and the underlying file 
    
                writer.Close();

                fs.Close();
            }
            catch (Exception e)
            {
                // Use this for debugging.
                // Never dispaly it!
                string ex = e.ToString();
                throw new Exception(
                    "[SampleEventProvider] StoreToFile: exception." );
            }
        }

    }

}

次の構成ファイル抜粋に、healthMonitoring 構成セクション示します。これにより、ASP.NET上記定義されるカスタム プロバイダ使用してすべての状態監視イベントを処理できます

<healthMonitoring  
  heartBeatInterval="0" enabled="true">

  <bufferModes>
    <add name ="Custom Notification"
      maxBufferSize="10"
      maxFlushSize="5"
      urgentFlushThreshold="10"
      regularFlushInterval="Infinite"
      urgentFlushInterval="00:00:30"
      maxBufferThreads="1"
/>
  </bufferModes>

  <providers>
    <clear/>
    <add name="SampleBufferedWebEventProvider" 
      type="SamplesAspNet.SampleBufferedWebEventProvider, bufferedwebeventprovider,
 Version=1.0.1785.14700, Culture=neutral, PublicKeyToken=d31491bf33b55954, processorArchitecture=MSIL"
 
      buffer="true"
      bufferMode="Custom Notification"
/>
  </providers>

  <profiles>
    <add name="Custom" 
      minInstances="1" 
      maxLimit="Infinite" 
      minInterval="00:00:00" />
  </profiles>

  <rules>
    <clear />
      <add name="Custom Buffered Web Event Provider" 
        eventName="All Events"
        provider="SampleBufferedWebEventProvider" 
        profile="Custom" />
  </rules>

</healthMonitoring>
継承階層継承階層
System.Object
   System.Configuration.Provider.ProviderBase
     System.Web.Management.WebEventProvider
      System.Web.Management.BufferedWebEventProvider
         System.Web.Management.MailWebEventProvider
         System.Web.Management.SqlWebEventProvider
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

BufferedWebEventProvider コンストラクタ

メモ : このコンストラクタは、.NET Framework version 2.0新しく追加されたものです。

BufferedWebEventProvider クラス新しインスタンス初期化します。

名前空間: System.Web.Management
アセンブリ: System.Web (system.web.dll 内)
構文構文

Dim instance As New BufferedWebEventProvider
protected BufferedWebEventProvider ()
protected:
BufferedWebEventProvider ()
protected BufferedWebEventProvider ()
protected function BufferedWebEventProvider
 ()
解説解説
使用例使用例

このコンストラクタカスタム イベント プロバイダ使用する方法次のコード例示します

Public Sub New()
   ' Perform local initializations.
   ' Path of local file where to store 
   ' event info.
   ' Assure that the path works for you and
   ' that the right permissions are set.
   logFilePath = "C:/test/log.doc"
   
   ' Instantiate buffer to contain 
   ' local data.
   customInfo = New StringBuilder()
End Sub 'New
 

public SampleBufferedWebEventProvider()
{
    // Perform local initializations.

    // Path of local file where to store 
    // event info.
    // Assure that the path works for you and
    // that the right permissions are set.
    logFilePath = "C:/test/log.doc";
    
    // Instantiate buffer to contain 
    // local data.
    customInfo = new StringBuilder();

}

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
BufferedWebEventProvider クラス
BufferedWebEventProvider メンバ
System.Web.Management 名前空間

BufferedWebEventProvider プロパティ


BufferedWebEventProvider メソッド


パブリック メソッドパブリック メソッド

プロテクト メソッドプロテクト メソッド
参照参照

関連項目

BufferedWebEventProvider クラス
System.Web.Management 名前空間
WebEventBufferFlushInfo

その他の技術情報

healthMonitoring 要素 (ASP.NET 設定スキーマ)
ASP.NET の状態監視
SQL Server 向けアプリケーション サービス データベース作成構成

BufferedWebEventProvider メンバ

バッファリングを必要とするイベント プロバイダ作成するための基本機能提供します

BufferedWebEventProvider データ型公開されるメンバを以下の表に示します


プロテクト コンストラクタプロテクト コンストラクタ
  名前 説明
プロテクト メソッド BufferedWebEventProvider BufferedWebEventProvider クラス新しインスタンス初期化します。
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

BufferedWebEventProvider クラス
System.Web.Management 名前空間
WebEventBufferFlushInfo

その他の技術情報

healthMonitoring 要素 (ASP.NET 設定スキーマ)
ASP.NET の状態監視
SQL Server 向けアプリケーション サービス データベース作成構成


このページでは「.NET Framework クラス ライブラリ リファレンス」からBufferedWebEventProviderを検索した結果を表示しています。
Weblioに収録されているすべての辞書からBufferedWebEventProviderを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からBufferedWebEventProvider を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「BufferedWebEventProvider」の関連用語

BufferedWebEventProviderのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



BufferedWebEventProviderのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS