WebRequestInformation 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供關於目前 Web 要求的資訊。
public ref class WebRequestInformation sealed
public sealed class WebRequestInformation
type WebRequestInformation = class
Public NotInheritable Class WebRequestInformation
- 繼承
-
WebRequestInformation
範例
下列程式碼範例示範如何實作使用 型別的 WebRequestInformation 自訂事件。
另顯示是組態檔的摘錄,可讓 ASP.NET 使用此自訂事件。
請確定您的自訂事件會在適當的時間引發,也就是說,當相等的系統健康情況事件引發時,就會引發它所取代的事件。
<healthMonitoring
heartBeatInterval="0" enabled="true">
<profiles>
<add name="Custom"
minInstances="1"
maxLimit="Infinite"
minInterval="00:00:00" />
</profiles>
<eventMappings>
<add
name="SampleWebRequestInformation"
type="SamplesAspNet.SampleWebRequestInformation,webrequestinformation,Version=1.0.1782.28745, Culture=neutral, PublicKeyToken=79955d9b8521c250,processorArchitecture=MSIL" />
</eventMappings>
<rules>
<add name="Custom Web Request Info Event"
eventName="SampleWebRequestInformation"
provider="EventLogProvider"
profile="Custom" />
</rules>
</healthMonitoring>
using System;
using System.Text;
using System.Web;
using System.Web.Management;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace SamplesAspNet
{
// Implements a custom WebRequestEvent that uses
// WebRequestInformation.
public class SampleWebRequestInformation :
WebRequestEvent
{
private StringBuilder eventInfo;
// Instantiate events identified
// only by their event code.
public SampleWebRequestInformation(string msg,
object eventSource, int eventCode):
base(msg, eventSource, eventCode)
{
// Perform custom initialization.
eventInfo = new StringBuilder();
eventInfo.Append(string.Format(
"Event created at: {0}",
EventTime.ToString()));
}
// Instantiate events identified by
// their event code.and related
// event detailed code.
public SampleWebRequestInformation(string msg,
object eventSource, int eventCode,
int eventDetailCode)
:
base(msg, eventSource,
eventCode, eventDetailCode)
{
// 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 request path.
public string GetRequestPath()
{
// Get the request path.
return (string.Format(
"Request path: {0}",
RequestInformation.RequestPath));
}
// Get the request URL.
public string GetRequestUrl()
{
// Get the request URL.
return (string.Format(
"Request URL: {0}",
RequestInformation.RequestUrl));
}
// Get the request user host address.
public string GetRequestUserHostAdddress()
{
// Get the request user host address.
return (string.Format(
"Request user host address: {0}",
RequestInformation.UserHostAddress));
}
// Get the request principal.
public string GetRequestPrincipal()
{
// Get the request principal.
return (string.Format(
"Request principal name: {0}",
RequestInformation.Principal.Identity.Name));
}
// Formats Web request event information.
public override void FormatCustomEventDetails(
WebEventFormatter formatter)
{
// Add custom data.
formatter.AppendLine("");
formatter.AppendLine(
"Custom Request Information:");
formatter.IndentationLevel += 1;
// Display the request information obtained
// using the WebRequestInformation object.
formatter.AppendLine(GetRequestPath());
formatter.AppendLine(GetRequestUrl());
formatter.AppendLine(GetRequestUserHostAdddress());
formatter.AppendLine(GetRequestPrincipal());
formatter.IndentationLevel -= 1;
formatter.AppendLine(eventInfo.ToString());
}
}
}
Imports System.Text
Imports System.Web
Imports System.Web.Management
Imports System.Web.UI
Imports System.Web.UI.WebControls
' Implements a custom WebRequestEvent that uses
' WebRequestInformation.
Public Class SampleWebRequestInformation
Inherits WebRequestEvent
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)
MyBase.New(msg, eventSource, eventCode)
' Perform custom initialization.
eventInfo = New StringBuilder()
eventInfo.Append(String.Format( _
"Event created at: {0}", EventTime.ToString()))
End Sub
' Instantiate events identified by
' their event code.and related
' event detailed code.
Public Sub New(ByVal msg As String, _
ByVal eventSource As Object, _
ByVal eventCode As Integer, _
ByVal eventDetailCode As Integer)
MyBase.New(msg, eventSource, _
eventCode, eventDetailCode)
' 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 request path.
Public Function GetRequestPath() As String
' Get the request path.
Return String.Format( _
"Request path: {0}", RequestInformation.RequestPath)
End Function 'GetRequestPath
' Get the request URL.
Public Function GetRequestUrl() As String
' Get the request URL.
Return String.Format("Request URL: {0}", _
RequestInformation.RequestUrl)
End Function 'GetRequestUrl
' Get the request user host address.
Public Function GetRequestUserHostAdddress() As String
' Get the request user host address.
Return String.Format( _
"Request user host address: {0}", _
RequestInformation.UserHostAddress)
End Function 'GetRequestUserHostAdddress
' Get the request principal.
Public Function GetRequestPrincipal() As String
' Get the request principal.
Return String.Format( _
"Request principal name: {0}", _
RequestInformation.Principal.Identity.Name)
End Function 'GetRequestPrincipal
' Formats Web request event information.
Public Overrides Sub FormatCustomEventDetails( _
ByVal formatter As WebEventFormatter)
' Add custom data.
formatter.AppendLine("")
formatter.AppendLine("Custom Request Information:")
formatter.IndentationLevel += 1
' Display the request information obtained
' using the WebRequestInformation object.
formatter.AppendLine(GetRequestPath())
formatter.AppendLine(GetRequestUrl())
formatter.AppendLine(GetRequestUserHostAdddress())
formatter.AppendLine(GetRequestPrincipal())
formatter.IndentationLevel -= 1
formatter.AppendLine(eventInfo.ToString())
End Sub
End Class
備註
ASP.NET 健康情況監視可讓生產與作業人員管理已部署的 Web 應用程式。 System.Web.Management命名空間包含負責封裝應用程式健康狀態資料的健全狀況事件種類,以及負責處理此資料的提供者類型。 它也包含支援類型,可協助管理健康情況事件。
類別的 WebRequestInformation 實例包含使用 WebRequestEvent 、 WebAuditEventWebErrorEvent 或 WebRequestErrorEvent 類型取得的資訊。
您的應用程式需要適當的許可權,才能存取此類型所提供的受保護資訊。
注意
在大部分情況下,您將能夠使用實作的 ASP.NET 健康情況監視類型,而且您會在組態區段中指定值 healthMonitoring
來控制健康情況監視系統。 您也可以衍生自健康情況監視類型,以建立您自己的自訂事件和提供者。 如需建立自訂事件類別的範例,請參閱本主題中提供的範例。
屬性
Principal |
取得與 Web 要求關聯的 Managed 程式碼主體之執行個體。 |
RequestPath |
取得 Web 要求的實體路徑。 |
RequestUrl |
取得要求的邏輯路徑。 |
ThreadAccountName |
取得字串,表示正在代表其執行程式碼的使用者 Windows 登入名稱。 |
UserHostAddress |
取得使用者主機位址。 |
方法
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
FormatToString(WebEventFormatter) |
格式化 Web 要求資訊。 |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |