You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
436
mcs/class/referencesource/System.Web/Management/WebEventCodes.cs
Normal file
436
mcs/class/referencesource/System.Web/Management/WebEventCodes.cs
Normal file
@ -0,0 +1,436 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <copyright file="WebEventCodes.cs" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace System.Web.Management {
|
||||
|
||||
using System.Globalization;
|
||||
using System.Collections;
|
||||
using Debug=System.Web.Util.Debug;
|
||||
using System.Security.Permissions;
|
||||
|
||||
// this class is a container for pre-defined event codes
|
||||
// all APIs will take integers so application defined
|
||||
// codes or new codes added through servicing are supported
|
||||
public sealed class WebEventCodes {
|
||||
|
||||
private WebEventCodes() {
|
||||
}
|
||||
|
||||
static WebEventCodes()
|
||||
{
|
||||
InitEventArrayDimensions();
|
||||
}
|
||||
|
||||
// (not bit flags)
|
||||
// we're not using an enum for extensibility reasons
|
||||
public const int InvalidEventCode = -1;
|
||||
public const int UndefinedEventCode = 0;
|
||||
public const int UndefinedEventDetailCode = 0;
|
||||
|
||||
// ----------------------------------
|
||||
// Application Codes
|
||||
// ----------------------------------
|
||||
public const int ApplicationCodeBase = 1000;
|
||||
public const int ApplicationStart = ApplicationCodeBase + 1;
|
||||
public const int ApplicationShutdown = ApplicationCodeBase + 2;
|
||||
public const int ApplicationCompilationStart = ApplicationCodeBase + 3;
|
||||
public const int ApplicationCompilationEnd = ApplicationCodeBase + 4;
|
||||
public const int ApplicationHeartbeat = ApplicationCodeBase + 5;
|
||||
|
||||
internal const int ApplicationCodeBaseLast = ApplicationCodeBase + 5;
|
||||
|
||||
|
||||
// ----------------------------------
|
||||
// Request Codes
|
||||
// ----------------------------------
|
||||
public const int RequestCodeBase = 2000;
|
||||
public const int RequestTransactionComplete = RequestCodeBase+1;
|
||||
public const int RequestTransactionAbort = RequestCodeBase+2;
|
||||
|
||||
internal const int RequestCodeBaseLast = RequestCodeBase+2;
|
||||
|
||||
|
||||
// ----------------------------------
|
||||
// Error Codes
|
||||
// ----------------------------------
|
||||
public const int ErrorCodeBase = 3000;
|
||||
|
||||
// Errors during request processing related to client input
|
||||
// or behavior
|
||||
public const int RuntimeErrorRequestAbort = ErrorCodeBase + 1;
|
||||
public const int RuntimeErrorViewStateFailure = ErrorCodeBase + 2;
|
||||
public const int RuntimeErrorValidationFailure = ErrorCodeBase + 3;
|
||||
public const int RuntimeErrorPostTooLarge = ErrorCodeBase + 4;
|
||||
public const int RuntimeErrorUnhandledException = ErrorCodeBase + 5;
|
||||
|
||||
// Errors related to configuration or invalid code
|
||||
public const int WebErrorParserError = ErrorCodeBase + 6;
|
||||
public const int WebErrorCompilationError = ErrorCodeBase + 7;
|
||||
public const int WebErrorConfigurationError = ErrorCodeBase + 8;
|
||||
public const int WebErrorOtherError = ErrorCodeBase + 9;
|
||||
public const int WebErrorPropertyDeserializationError = ErrorCodeBase + 10;
|
||||
public const int WebErrorObjectStateFormatterDeserializationError = ErrorCodeBase + 11;
|
||||
|
||||
public const int RuntimeErrorWebResourceFailure = ErrorCodeBase + 12;
|
||||
|
||||
internal const int ErrorCodeBaseLast = ErrorCodeBase + 12;
|
||||
|
||||
|
||||
// ----------------------------------
|
||||
// Audit codes
|
||||
// ----------------------------------
|
||||
public const int AuditCodeBase = 4000;
|
||||
|
||||
// success codes
|
||||
public const int AuditFormsAuthenticationSuccess = AuditCodeBase + 1;
|
||||
public const int AuditMembershipAuthenticationSuccess = AuditCodeBase + 2;
|
||||
public const int AuditUrlAuthorizationSuccess = AuditCodeBase + 3;
|
||||
public const int AuditFileAuthorizationSuccess = AuditCodeBase + 4;
|
||||
|
||||
// failure codes
|
||||
public const int AuditFormsAuthenticationFailure = AuditCodeBase +5;
|
||||
public const int AuditMembershipAuthenticationFailure = AuditCodeBase + 6;
|
||||
public const int AuditUrlAuthorizationFailure = AuditCodeBase + 7;
|
||||
public const int AuditFileAuthorizationFailure = AuditCodeBase + 8;
|
||||
public const int AuditInvalidViewStateFailure = AuditCodeBase + 9;
|
||||
public const int AuditUnhandledSecurityException = AuditCodeBase + 10;
|
||||
public const int AuditUnhandledAccessException = AuditCodeBase + 11;
|
||||
|
||||
internal const int AuditCodeBaseLast = AuditCodeBase + 11;
|
||||
|
||||
// Misc events
|
||||
public const int MiscCodeBase = 6000;
|
||||
|
||||
public const int WebEventProviderInformation = MiscCodeBase + 1;
|
||||
|
||||
internal const int MiscCodeBaseLast = MiscCodeBase + 1;
|
||||
|
||||
// Last code base
|
||||
internal const int LastCodeBase = 6000;
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
// Detail Codes
|
||||
/////////////////////////////////////////////////////
|
||||
public const int ApplicationDetailCodeBase = 50000;
|
||||
public const int ApplicationShutdownUnknown = ApplicationDetailCodeBase + 1;
|
||||
public const int ApplicationShutdownHostingEnvironment = ApplicationDetailCodeBase + 2;
|
||||
public const int ApplicationShutdownChangeInGlobalAsax = ApplicationDetailCodeBase + 3;
|
||||
public const int ApplicationShutdownConfigurationChange = ApplicationDetailCodeBase + 4;
|
||||
public const int ApplicationShutdownUnloadAppDomainCalled = ApplicationDetailCodeBase + 5;
|
||||
public const int ApplicationShutdownChangeInSecurityPolicyFile = ApplicationDetailCodeBase + 6;
|
||||
public const int ApplicationShutdownBinDirChangeOrDirectoryRename = ApplicationDetailCodeBase + 7;
|
||||
public const int ApplicationShutdownBrowsersDirChangeOrDirectoryRename = ApplicationDetailCodeBase + 8;
|
||||
public const int ApplicationShutdownCodeDirChangeOrDirectoryRename = ApplicationDetailCodeBase + 9;
|
||||
public const int ApplicationShutdownResourcesDirChangeOrDirectoryRename = ApplicationDetailCodeBase + 10;
|
||||
public const int ApplicationShutdownIdleTimeout = ApplicationDetailCodeBase + 11;
|
||||
public const int ApplicationShutdownPhysicalApplicationPathChanged = ApplicationDetailCodeBase + 12;
|
||||
public const int ApplicationShutdownHttpRuntimeClose = ApplicationDetailCodeBase + 13;
|
||||
public const int ApplicationShutdownInitializationError = ApplicationDetailCodeBase + 14;
|
||||
public const int ApplicationShutdownMaxRecompilationsReached = ApplicationDetailCodeBase + 15;
|
||||
public const int StateServerConnectionError = ApplicationDetailCodeBase + 16;
|
||||
public const int ApplicationShutdownBuildManagerChange = ApplicationDetailCodeBase + 17;
|
||||
|
||||
// Audit detail codes
|
||||
public const int AuditDetailCodeBase = 50200;
|
||||
public const int InvalidTicketFailure = AuditDetailCodeBase + 1;
|
||||
public const int ExpiredTicketFailure = AuditDetailCodeBase + 2;
|
||||
public const int InvalidViewStateMac = AuditDetailCodeBase + 3;
|
||||
public const int InvalidViewState = AuditDetailCodeBase + 4;
|
||||
|
||||
// Web Event provider detail codes
|
||||
public const int WebEventDetailCodeBase = 50300;
|
||||
public const int SqlProviderEventsDropped = WebEventDetailCodeBase + 1;
|
||||
|
||||
// Application extensions should start from here
|
||||
public const int WebExtendedBase = 100000;
|
||||
|
||||
internal static string MessageFromEventCode(int eventCode, int eventDetailCode) {
|
||||
string msg = null;
|
||||
string detailMsg = null;
|
||||
|
||||
if (eventDetailCode != 0) {
|
||||
switch(eventDetailCode) {
|
||||
case ApplicationShutdownUnknown:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_ApplicationShutdownUnknown);
|
||||
break;
|
||||
|
||||
case ApplicationShutdownHostingEnvironment:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_ApplicationShutdownHostingEnvironment);
|
||||
break;
|
||||
|
||||
case ApplicationShutdownChangeInGlobalAsax:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_ApplicationShutdownChangeInGlobalAsax);
|
||||
break;
|
||||
|
||||
case ApplicationShutdownConfigurationChange:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_ApplicationShutdownConfigurationChange);
|
||||
break;
|
||||
|
||||
case ApplicationShutdownUnloadAppDomainCalled:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_ApplicationShutdownUnloadAppDomainCalled);
|
||||
break;
|
||||
|
||||
case ApplicationShutdownChangeInSecurityPolicyFile:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_ApplicationShutdownChangeInSecurityPolicyFile);
|
||||
break;
|
||||
|
||||
case ApplicationShutdownBinDirChangeOrDirectoryRename:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_ApplicationShutdownBinDirChangeOrDirectoryRename);
|
||||
break;
|
||||
|
||||
case ApplicationShutdownBrowsersDirChangeOrDirectoryRename:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_ApplicationShutdownBrowsersDirChangeOrDirectoryRename);
|
||||
break;
|
||||
|
||||
case ApplicationShutdownCodeDirChangeOrDirectoryRename:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_ApplicationShutdownCodeDirChangeOrDirectoryRename);
|
||||
break;
|
||||
|
||||
case ApplicationShutdownResourcesDirChangeOrDirectoryRename:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_ApplicationShutdownResourcesDirChangeOrDirectoryRename);
|
||||
break;
|
||||
|
||||
case ApplicationShutdownIdleTimeout:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_ApplicationShutdownIdleTimeout);
|
||||
break;
|
||||
|
||||
case ApplicationShutdownPhysicalApplicationPathChanged:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_ApplicationShutdownPhysicalApplicationPathChanged);
|
||||
break;
|
||||
|
||||
case ApplicationShutdownHttpRuntimeClose:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_ApplicationShutdownHttpRuntimeClose);
|
||||
break;
|
||||
|
||||
case ApplicationShutdownInitializationError:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_ApplicationShutdownInitializationError);
|
||||
break;
|
||||
|
||||
case ApplicationShutdownMaxRecompilationsReached:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_ApplicationShutdownMaxRecompilationsReached);
|
||||
break;
|
||||
|
||||
case ApplicationShutdownBuildManagerChange:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_ApplicationShutdownBuildManagerChange);
|
||||
break;
|
||||
|
||||
case StateServerConnectionError:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_StateServerConnectionError);
|
||||
break;
|
||||
|
||||
case InvalidTicketFailure:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_InvalidTicketFailure);
|
||||
break;
|
||||
|
||||
case ExpiredTicketFailure:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_ExpiredTicketFailure);
|
||||
break;
|
||||
|
||||
case InvalidViewStateMac:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_InvalidViewStateMac);
|
||||
break;
|
||||
|
||||
case InvalidViewState:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_InvalidViewState);
|
||||
break;
|
||||
|
||||
case SqlProviderEventsDropped:
|
||||
detailMsg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_detail_SqlProviderEventsDropped);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch(eventCode) {
|
||||
case ApplicationStart:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_ApplicationStart);
|
||||
break;
|
||||
|
||||
case ApplicationShutdown:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_ApplicationShutdown);
|
||||
break;
|
||||
|
||||
case ApplicationCompilationStart:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_ApplicationCompilationStart);
|
||||
break;
|
||||
|
||||
case ApplicationCompilationEnd:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_ApplicationCompilationEnd);
|
||||
break;
|
||||
|
||||
case ApplicationHeartbeat:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_ApplicationHeartbeat);
|
||||
break;
|
||||
|
||||
case RequestTransactionComplete:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_RequestTransactionComplete);
|
||||
break;
|
||||
|
||||
case RequestTransactionAbort:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_RequestTransactionAbort);
|
||||
break;
|
||||
|
||||
case RuntimeErrorRequestAbort:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_RuntimeErrorRequestAbort);
|
||||
break;
|
||||
|
||||
case RuntimeErrorViewStateFailure:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_RuntimeErrorViewStateFailure);
|
||||
break;
|
||||
|
||||
case RuntimeErrorValidationFailure:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_RuntimeErrorValidationFailure);
|
||||
break;
|
||||
|
||||
case RuntimeErrorPostTooLarge:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_RuntimeErrorPostTooLarge);
|
||||
break;
|
||||
|
||||
case RuntimeErrorUnhandledException:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_RuntimeErrorUnhandledException);
|
||||
break;
|
||||
|
||||
case WebErrorParserError:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_WebErrorParserError);
|
||||
break;
|
||||
|
||||
case WebErrorCompilationError:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_WebErrorCompilationError);
|
||||
break;
|
||||
|
||||
case WebErrorConfigurationError:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_WebErrorConfigurationError);
|
||||
break;
|
||||
|
||||
case AuditUnhandledSecurityException:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_AuditUnhandledSecurityException);
|
||||
break;
|
||||
|
||||
case AuditInvalidViewStateFailure:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_AuditInvalidViewStateFailure);
|
||||
break;
|
||||
|
||||
case AuditFormsAuthenticationSuccess:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_AuditFormsAuthenticationSuccess);
|
||||
break;
|
||||
|
||||
case AuditUrlAuthorizationSuccess:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_AuditUrlAuthorizationSuccess);
|
||||
break;
|
||||
|
||||
case AuditFileAuthorizationFailure:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_AuditFileAuthorizationFailure);
|
||||
break;
|
||||
|
||||
case AuditFormsAuthenticationFailure:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_AuditFormsAuthenticationFailure);
|
||||
break;
|
||||
|
||||
case AuditFileAuthorizationSuccess:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_AuditFileAuthorizationSuccess);
|
||||
break;
|
||||
|
||||
case AuditMembershipAuthenticationSuccess:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_AuditMembershipAuthenticationSuccess);
|
||||
break;
|
||||
|
||||
case AuditMembershipAuthenticationFailure:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_AuditMembershipAuthenticationFailure);
|
||||
break;
|
||||
|
||||
case AuditUrlAuthorizationFailure:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_AuditUrlAuthorizationFailure);
|
||||
break;
|
||||
|
||||
case AuditUnhandledAccessException:
|
||||
msg = WebBaseEvent.FormatResourceStringWithCache(SR.Webevent_msg_AuditUnhandledAccessException);
|
||||
break;
|
||||
|
||||
default:
|
||||
Debug.Assert(false, "ASP.NET event code " + eventCode.ToString(CultureInfo.InvariantCulture) + " doesn't have message string mapped to it");
|
||||
return String.Empty;
|
||||
}
|
||||
|
||||
if (detailMsg != null) {
|
||||
msg += " " + detailMsg;
|
||||
}
|
||||
|
||||
return msg;
|
||||
}
|
||||
|
||||
// Both WebBaseEvents and HealthMonitoringSectionHelper has to store information per {event type, event code}.
|
||||
// But for system event type, eventCode and event type has a N:1 relationship. Meaning every event
|
||||
// code can be mapped to one and only one event type. So instead of using {event type, event code} as
|
||||
// the key, we can use just the event code as the key.
|
||||
|
||||
// The simplest way is to use a hashtable. But in order to boost performance, we store those
|
||||
// information using an array with event code as the key. However, because the event code range is not
|
||||
// continuous, and has large gap between categories, instead we use an NxM array, when N is number
|
||||
// of major event code categories (e.g. ApplicationCodeBase and RequestCodeBase), and M is the
|
||||
// max number of per category event code among all the catogories.
|
||||
|
||||
// WebBaseEvents and HealthMonitoringSectionHelper will each maintain its own NxM arrays, and it
|
||||
// depends on the following functions to calculate the sizes of the array, and to convert an event
|
||||
// code into a (x,y) coordinate.
|
||||
|
||||
internal static int[] s_eventArrayDimensionSizes = new int[2];
|
||||
|
||||
internal static int GetEventArrayDimensionSize(int dim) {
|
||||
Debug.Assert(dim == 0 || dim == 1, "dim == 0 || dim == 1");
|
||||
|
||||
return s_eventArrayDimensionSizes[dim];
|
||||
}
|
||||
|
||||
// Convert an event code into a (x,y) coordinate.
|
||||
internal static void GetEventArrayIndexsFromEventCode(int eventCode, out int index0, out int index1) {
|
||||
index0 = eventCode/1000 - 1;
|
||||
index1 = eventCode - (eventCode/1000)*1000 - 1;
|
||||
|
||||
Debug.Assert(index0 >= 0 && index0 < GetEventArrayDimensionSize(0), "Index0 of system eventCode out of expected range: " + eventCode);
|
||||
Debug.Assert(index1 >= 0 && index1 < GetEventArrayDimensionSize(1), "Index1 of system eventCode out of expected range: " + eventCode);
|
||||
}
|
||||
|
||||
static void InitEventArrayDimensions()
|
||||
{
|
||||
int sizeOf2ndDim = 0;
|
||||
int size;
|
||||
|
||||
// Below is the manual way to figure out the size of the 2nd dimension.
|
||||
|
||||
size = WebEventCodes.ApplicationCodeBaseLast - WebEventCodes.ApplicationCodeBase;
|
||||
if (size > sizeOf2ndDim) {
|
||||
sizeOf2ndDim = size;
|
||||
}
|
||||
|
||||
size = WebEventCodes.RequestCodeBaseLast - WebEventCodes.RequestCodeBase;
|
||||
if (size > sizeOf2ndDim) {
|
||||
sizeOf2ndDim = size;
|
||||
}
|
||||
|
||||
size = WebEventCodes.ErrorCodeBaseLast - WebEventCodes.ErrorCodeBase;
|
||||
if (size > sizeOf2ndDim) {
|
||||
sizeOf2ndDim = size;
|
||||
}
|
||||
|
||||
size = WebEventCodes.AuditCodeBaseLast - WebEventCodes.AuditCodeBase;
|
||||
if (size > sizeOf2ndDim) {
|
||||
sizeOf2ndDim = size;
|
||||
}
|
||||
|
||||
size = WebEventCodes.MiscCodeBaseLast - WebEventCodes.MiscCodeBase;
|
||||
if (size > sizeOf2ndDim) {
|
||||
sizeOf2ndDim = size;
|
||||
}
|
||||
|
||||
s_eventArrayDimensionSizes[0] = WebEventCodes.LastCodeBase/1000;
|
||||
s_eventArrayDimensionSizes[1] = sizeOf2ndDim;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user