Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / ndp / fx / src / xsp / System / Web / Management / WebEventCodes.cs / 3 / WebEventCodes.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- 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 [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] 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; internal const int ErrorCodeBaseLast = ErrorCodeBase + 11; // ---------------------------------- // 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; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- 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 [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] 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; internal const int ErrorCodeBaseLast = ErrorCodeBase + 11; // ---------------------------------- // 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; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlDataSourceView.cs
- ProtocolsSection.cs
- SourceFileBuildProvider.cs
- BasePattern.cs
- Nodes.cs
- VarRemapper.cs
- SmiTypedGetterSetter.cs
- CommonDialog.cs
- ClosureBinding.cs
- ConfigXmlCDataSection.cs
- XmlExtensionFunction.cs
- XsltContext.cs
- StringPropertyBuilder.cs
- Stroke.cs
- LocationUpdates.cs
- SmiRecordBuffer.cs
- SynchronizedMessageSource.cs
- _BufferOffsetSize.cs
- ColorConvertedBitmap.cs
- RepeatInfo.cs
- BinaryKeyIdentifierClause.cs
- WbemProvider.cs
- CardSpacePolicyElement.cs
- TiffBitmapDecoder.cs
- InvalidProgramException.cs
- ProgressiveCrcCalculatingStream.cs
- PlanCompiler.cs
- WebSysDescriptionAttribute.cs
- SingleBodyParameterMessageFormatter.cs
- BorderSidesEditor.cs
- PasswordTextNavigator.cs
- OrderedDictionary.cs
- Helper.cs
- X509Extension.cs
- NotSupportedException.cs
- StatusBarPanelClickEvent.cs
- DesignerHelpers.cs
- BinaryObjectInfo.cs
- NotCondition.cs
- MsmqIntegrationBindingCollectionElement.cs
- RepeaterDataBoundAdapter.cs
- XmlReader.cs
- EdmFunctionAttribute.cs
- EdmComplexPropertyAttribute.cs
- ParagraphVisual.cs
- ToolStripDropDownClosedEventArgs.cs
- VectorAnimationBase.cs
- ReferenceEqualityComparer.cs
- _WebProxyDataBuilder.cs
- ProjectedWrapper.cs
- WS2007FederationHttpBindingCollectionElement.cs
- CodeTypeReferenceExpression.cs
- AnimationTimeline.cs
- MenuRendererStandards.cs
- QEncodedStream.cs
- CompilationSection.cs
- HtmlLinkAdapter.cs
- ContextDataSource.cs
- SpeechUI.cs
- CurrentTimeZone.cs
- AnnotationHighlightLayer.cs
- UrlMapping.cs
- Transaction.cs
- DataGridViewComboBoxEditingControl.cs
- MulticastDelegate.cs
- FrameworkContentElementAutomationPeer.cs
- EnumerableRowCollection.cs
- QuotaExceededException.cs
- Debugger.cs
- Debug.cs
- Fonts.cs
- SiteMapPath.cs
- ObjectAssociationEndMapping.cs
- Converter.cs
- XsdDuration.cs
- DocumentPageViewAutomationPeer.cs
- XmlIlVisitor.cs
- ReadWriteObjectLock.cs
- UriScheme.cs
- NonParentingControl.cs
- HttpResponse.cs
- ConsoleKeyInfo.cs
- MailWebEventProvider.cs
- URIFormatException.cs
- WmfPlaceableFileHeader.cs
- ImageListImageEditor.cs
- InternalCache.cs
- SerializationAttributes.cs
- StylusCaptureWithinProperty.cs
- RuleEngine.cs
- WebPartEditorOkVerb.cs
- HtmlDocument.cs
- AvTraceDetails.cs
- UriScheme.cs
- ImageButton.cs
- ObjectStateFormatter.cs
- TextTreePropertyUndoUnit.cs
- ThemeInfoAttribute.cs
- AsmxEndpointPickerExtension.cs
- ComplexPropertyEntry.cs