Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Management / WebEventCodes.cs / 2 / 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; } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SymmetricAlgorithm.cs
- LocalizableResourceBuilder.cs
- Rules.cs
- wmiprovider.cs
- SafeNativeMethods.cs
- OracleParameter.cs
- WindowsListViewGroupHelper.cs
- MarginCollapsingState.cs
- CmsUtils.cs
- Label.cs
- TextRangeSerialization.cs
- DataGridCaption.cs
- WebPageTraceListener.cs
- BaseTreeIterator.cs
- SpecularMaterial.cs
- IArgumentProvider.cs
- GPStream.cs
- PnrpPermission.cs
- InternalBase.cs
- CommandEventArgs.cs
- CodeTypeMember.cs
- AddInSegmentDirectoryNotFoundException.cs
- BatchStream.cs
- ConditionCollection.cs
- XmlSchemaSimpleContentExtension.cs
- FileDialog.cs
- ProviderBase.cs
- EntityStoreSchemaGenerator.cs
- WebReference.cs
- MultiPropertyDescriptorGridEntry.cs
- HtmlImage.cs
- ResXFileRef.cs
- NumericExpr.cs
- ColorEditor.cs
- HuffModule.cs
- GestureRecognitionResult.cs
- AudioSignalProblemOccurredEventArgs.cs
- DbConnectionHelper.cs
- TextWriter.cs
- XsltOutput.cs
- OneWayElement.cs
- DisplayMemberTemplateSelector.cs
- HtmlTextArea.cs
- ConfigXmlReader.cs
- ClientTargetSection.cs
- GridLength.cs
- SecurityNegotiationException.cs
- ICspAsymmetricAlgorithm.cs
- TreeView.cs
- BaseParagraph.cs
- SignatureHelper.cs
- ControlParser.cs
- BuildDependencySet.cs
- ScrollViewerAutomationPeer.cs
- CSharpCodeProvider.cs
- EntityDataSourceColumn.cs
- DbConnectionStringBuilder.cs
- DispatchChannelSink.cs
- AuthenticatedStream.cs
- DemultiplexingClientMessageFormatter.cs
- RSATokenProvider.cs
- X509CertificateCollection.cs
- AddInSegmentDirectoryNotFoundException.cs
- FormViewModeEventArgs.cs
- LogLogRecordEnumerator.cs
- ScrollEvent.cs
- MethodAccessException.cs
- DataGridRow.cs
- XmlImplementation.cs
- TickBar.cs
- CompositeKey.cs
- ImageUrlEditor.cs
- BatchStream.cs
- SolidBrush.cs
- DescendantBaseQuery.cs
- TabletDeviceInfo.cs
- ConfigurationSection.cs
- WebPartsPersonalization.cs
- Buffer.cs
- BinaryUtilClasses.cs
- TypeReference.cs
- TimeZone.cs
- ControlBuilderAttribute.cs
- IdentifierService.cs
- NGCSerializationManagerAsync.cs
- DisplayMemberTemplateSelector.cs
- XmlQueryType.cs
- LocalizableResourceBuilder.cs
- ConstrainedDataObject.cs
- CallbackValidator.cs
- DataColumnChangeEvent.cs
- BitmapEffectInput.cs
- WriterOutput.cs
- wgx_sdk_version.cs
- XmlNotation.cs
- LayoutEngine.cs
- BitmapEffect.cs
- ScrollBar.cs
- XmlUtf8RawTextWriter.cs
- ListViewEditEventArgs.cs