Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / xsp / System / Web / Management / WebEventCodes.cs / 4 / 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. // //----------------------------------------------------------------------------- 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- LifetimeServices.cs
- UmAlQuraCalendar.cs
- DataGridTablesFactory.cs
- HtmlShimManager.cs
- StrictAndMessageFilter.cs
- MostlySingletonList.cs
- InplaceBitmapMetadataWriter.cs
- HtmlString.cs
- ListView.cs
- Empty.cs
- MultiBindingExpression.cs
- LinkClickEvent.cs
- CustomExpressionEventArgs.cs
- ModuleConfigurationInfo.cs
- RichTextBoxConstants.cs
- Int32AnimationUsingKeyFrames.cs
- StrokeDescriptor.cs
- FieldToken.cs
- StylusDownEventArgs.cs
- SerializerDescriptor.cs
- SQLResource.cs
- FileDetails.cs
- AliasedSlot.cs
- XPathDescendantIterator.cs
- Compress.cs
- RestClientProxyHandler.cs
- BezierSegment.cs
- XXXOnTypeBuilderInstantiation.cs
- RuntimeConfig.cs
- CopyNodeSetAction.cs
- SystemKeyConverter.cs
- TextParaClient.cs
- MachineKeyConverter.cs
- InternalBase.cs
- AllMembershipCondition.cs
- AspCompat.cs
- VisualStateGroup.cs
- SoapFault.cs
- HtmlTableCell.cs
- IdentityManager.cs
- MessageAction.cs
- RequestUriProcessor.cs
- WindowsTooltip.cs
- SmiContext.cs
- GetPageNumberCompletedEventArgs.cs
- SingleSelectRootGridEntry.cs
- _AutoWebProxyScriptHelper.cs
- GridViewSelectEventArgs.cs
- DefaultSettingsSection.cs
- AccessKeyManager.cs
- TextReader.cs
- QueryContinueDragEventArgs.cs
- ObjectDataSourceStatusEventArgs.cs
- WebPartConnectionsConfigureVerb.cs
- ComMethodElementCollection.cs
- FileUtil.cs
- TablePattern.cs
- XAMLParseException.cs
- SqlFunctionAttribute.cs
- Pair.cs
- ViewGenResults.cs
- ParameterBuilder.cs
- CompositeCollectionView.cs
- documentsequencetextview.cs
- XamlFigureLengthSerializer.cs
- XmlBinaryReader.cs
- GetPageNumberCompletedEventArgs.cs
- AuthStoreRoleProvider.cs
- _SSPIWrapper.cs
- BindingEntityInfo.cs
- FunctionMappingTranslator.cs
- WpfWebRequestHelper.cs
- ToolStripContextMenu.cs
- ApplicationDirectory.cs
- SurrogateSelector.cs
- WebScriptMetadataMessageEncoderFactory.cs
- DefaultParameterValueAttribute.cs
- FrameworkElementFactory.cs
- CompressEmulationStream.cs
- Int32KeyFrameCollection.cs
- LateBoundBitmapDecoder.cs
- TextEndOfSegment.cs
- SponsorHelper.cs
- BamlLocalizationDictionary.cs
- InvokeSchedule.cs
- GlyphingCache.cs
- isolationinterop.cs
- IIS7WorkerRequest.cs
- XPathScanner.cs
- HttpRuntime.cs
- ReaderWriterLock.cs
- SourceElementsCollection.cs
- XmlLanguageConverter.cs
- TemplateKeyConverter.cs
- SqlNotificationEventArgs.cs
- Socket.cs
- PropertyDescriptor.cs
- lengthconverter.cs
- ParenthesizePropertyNameAttribute.cs
- WorkflowItemsPresenter.cs