Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / ProcessModelInfo.cs / 1 / ProcessModelInfo.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * ProcessInfo class */ namespace System.Web { using System.Runtime.Serialization.Formatters; using System.Threading; using System.Security.Permissions; [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class ProcessModelInfo { [AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.High)] static public ProcessInfo GetCurrentProcessInfo() { HttpContext context = HttpContext.Current; if (context == null || context.WorkerRequest == null || !(context.WorkerRequest is System.Web.Hosting.ISAPIWorkerRequestOutOfProc)) { throw new HttpException(SR.GetString(SR.Process_information_not_available)); } int dwReqExecuted = 0; int dwReqExecuting = 0; long tmCreateTime = 0; int pid = 0; int mem = 0; int iRet = UnsafeNativeMethods.PMGetCurrentProcessInfo ( ref dwReqExecuted, ref dwReqExecuting, ref mem, ref tmCreateTime, ref pid); if (iRet < 0) throw new HttpException(SR.GetString(SR.Process_information_not_available)); DateTime startTime = DateTime.FromFileTime(tmCreateTime); TimeSpan age = DateTime.Now.Subtract(startTime); return new ProcessInfo(startTime, age, pid, dwReqExecuted, ProcessStatus.Alive, ProcessShutdownReason.None, mem); } [AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.High)] static public ProcessInfo[] GetHistory(int numRecords) { HttpContext context = HttpContext.Current; if (context == null || context.WorkerRequest == null || !(context.WorkerRequest is System.Web.Hosting.ISAPIWorkerRequestOutOfProc)) { throw new HttpException(SR.GetString(SR.Process_information_not_available)); } if (numRecords < 1) return null; int [] dwPID = new int [numRecords]; int [] dwExed = new int [numRecords]; int [] dwExei = new int [numRecords]; int [] dwPend = new int [numRecords]; int [] dwReas = new int [numRecords]; long [] tmCrea = new long [numRecords]; long [] tmDeat = new long [numRecords]; int [] mem = new int [numRecords]; int iRows = UnsafeNativeMethods.PMGetHistoryTable (numRecords, dwPID, dwExed, dwPend, dwExei, dwReas, mem, tmCrea, tmDeat); if (iRows < 0) throw new HttpException(SR.GetString(SR.Process_information_not_available)); ProcessInfo[] ret = new ProcessInfo[iRows]; for (int iter=0; iter0) age = DateTime.FromFileTime(tmDeat[iter]).Subtract(startTime); if ((dwReas[iter] & 0x0004) != 0) status = ProcessStatus.Terminated; else if ((dwReas[iter] & 0x0002) != 0) status = ProcessStatus.ShutDown; else status = ProcessStatus.ShuttingDown; if ((0x0040 & dwReas[iter]) != 0) rea = ProcessShutdownReason.IdleTimeout; else if ((0x0080 & dwReas[iter]) != 0) rea = ProcessShutdownReason.RequestsLimit; else if ((0x0100 & dwReas[iter]) != 0) rea = ProcessShutdownReason.RequestQueueLimit; else if ((0x0020 & dwReas[iter]) != 0) rea = ProcessShutdownReason.Timeout; else if ((0x0200 & dwReas[iter]) != 0) rea = ProcessShutdownReason.MemoryLimitExceeded; else if ((0x0400 & dwReas[iter]) != 0) rea = ProcessShutdownReason.PingFailed; else if ((0x0800 & dwReas[iter]) != 0) rea = ProcessShutdownReason.DeadlockSuspected; else rea = ProcessShutdownReason.Unexpected; } ret[iter] = new ProcessInfo(startTime, age, dwPID[iter], dwExed[iter], status, rea, mem[iter]); } return ret; } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CollaborationHelperFunctions.cs
- RouteTable.cs
- TemplateLookupAction.cs
- MetabaseServerConfig.cs
- ObjectDataSourceWizardForm.cs
- ListItemParagraph.cs
- RotateTransform3D.cs
- EmptyEnumerable.cs
- ApplicationServicesHostFactory.cs
- ScrollEventArgs.cs
- ValidationErrorEventArgs.cs
- MessageDroppedTraceRecord.cs
- ConfigurationLocationCollection.cs
- ObjectListDesigner.cs
- XmlReader.cs
- IncrementalReadDecoders.cs
- SchemaImporter.cs
- SiteMapDataSourceDesigner.cs
- MailMessageEventArgs.cs
- Int16.cs
- uribuilder.cs
- DataRelationCollection.cs
- ServicePoint.cs
- DataGridViewRowConverter.cs
- ReturnEventArgs.cs
- RelationshipWrapper.cs
- ScrollViewerAutomationPeer.cs
- ListBoxChrome.cs
- COM2ExtendedBrowsingHandler.cs
- RelationshipConverter.cs
- CalendarSelectionChangedEventArgs.cs
- RemoteWebConfigurationHostStream.cs
- RuntimeConfigLKG.cs
- StyleCollection.cs
- EntitySet.cs
- ComponentEditorForm.cs
- ClaimSet.cs
- OracleConnection.cs
- IndependentlyAnimatedPropertyMetadata.cs
- XNodeNavigator.cs
- SecurityState.cs
- UInt32Converter.cs
- CryptoApi.cs
- ScriptHandlerFactory.cs
- AnnouncementInnerClientCD1.cs
- RegexGroup.cs
- UnmanagedBitmapWrapper.cs
- ObjectList.cs
- ProxyWebPartManager.cs
- ConnectionInterfaceCollection.cs
- SimpleType.cs
- Point3DAnimationBase.cs
- ToolStrip.cs
- ClockController.cs
- DataRowChangeEvent.cs
- XmlAttribute.cs
- NativeMethods.cs
- NamedPipeTransportManager.cs
- RefreshPropertiesAttribute.cs
- RenderData.cs
- XmlChildNodes.cs
- XmlQueryTypeFactory.cs
- Span.cs
- PasswordBox.cs
- NameValueFileSectionHandler.cs
- GeometryGroup.cs
- SHA1CryptoServiceProvider.cs
- DataSysAttribute.cs
- XamlSerializerUtil.cs
- M3DUtil.cs
- ModelFunctionTypeElement.cs
- XomlCompilerParameters.cs
- DataGridViewIntLinkedList.cs
- ResourceCategoryAttribute.cs
- UrlEncodedParameterWriter.cs
- ExternalFile.cs
- NameValueSectionHandler.cs
- SessionState.cs
- Decimal.cs
- KeyboardEventArgs.cs
- SplashScreen.cs
- CookieHandler.cs
- QueueProcessor.cs
- ValidateNames.cs
- PersonalizationStateQuery.cs
- JournalEntry.cs
- XPathSelectionIterator.cs
- _Win32.cs
- InheritanceContextChangedEventManager.cs
- DesignerActionUIStateChangeEventArgs.cs
- TextEmbeddedObject.cs
- Cast.cs
- HttpHandler.cs
- CheckBox.cs
- CodeTypeMemberCollection.cs
- BaseTreeIterator.cs
- SmtpReplyReader.cs
- MailAddress.cs
- Int64Storage.cs
- CustomErrorsSection.cs