Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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; } } } // 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
- Byte.cs
- Size.cs
- SimpleWorkerRequest.cs
- CalendarDataBindingHandler.cs
- DbParameterHelper.cs
- ObjectHandle.cs
- HwndStylusInputProvider.cs
- ObjectSerializerFactory.cs
- BaseTemplateCodeDomTreeGenerator.cs
- CacheOutputQuery.cs
- DbInsertCommandTree.cs
- ExceptionTrace.cs
- ECDsa.cs
- typedescriptorpermissionattribute.cs
- PreviewKeyDownEventArgs.cs
- Tag.cs
- DataSourceSelectArguments.cs
- StreamGeometryContext.cs
- TypeExtensionSerializer.cs
- ProjectedSlot.cs
- Color.cs
- MailWriter.cs
- ListViewGroupConverter.cs
- SoapReflector.cs
- XmlImplementation.cs
- MethodAccessException.cs
- TogglePatternIdentifiers.cs
- IdentityElement.cs
- Tuple.cs
- ImmutablePropertyDescriptorGridEntry.cs
- GlyphCache.cs
- DropDownHolder.cs
- XmlNullResolver.cs
- Size3DValueSerializer.cs
- ReflectionPermission.cs
- CodeTypeDeclaration.cs
- CellQuery.cs
- _TimerThread.cs
- MultiSelectRootGridEntry.cs
- DataBindingHandlerAttribute.cs
- ValueConversionAttribute.cs
- IIS7UserPrincipal.cs
- ExpressionPrinter.cs
- ApplySecurityAndSendAsyncResult.cs
- Profiler.cs
- FlowDocumentPaginator.cs
- BrowserTree.cs
- KernelTypeValidation.cs
- GridView.cs
- StructuredTypeInfo.cs
- TextElementEditingBehaviorAttribute.cs
- Roles.cs
- JapaneseLunisolarCalendar.cs
- PathNode.cs
- Set.cs
- EntitySetBase.cs
- DiagnosticEventProvider.cs
- BooleanKeyFrameCollection.cs
- Helpers.cs
- ServiceProviders.cs
- CommandValueSerializer.cs
- PersistenceTypeAttribute.cs
- ServiceOperationParameter.cs
- ObjectContextServiceProvider.cs
- NavigatorOutput.cs
- ListItemParagraph.cs
- ForeignKeyConstraint.cs
- SchemaNamespaceManager.cs
- TextComposition.cs
- MsmqIntegrationInputMessage.cs
- HostingEnvironmentWrapper.cs
- MatchNoneMessageFilter.cs
- OperationParameterInfoCollection.cs
- OpacityConverter.cs
- SqlDataSourceConfigureFilterForm.cs
- CharUnicodeInfo.cs
- WebPartUtil.cs
- QueryOptionExpression.cs
- _UriTypeConverter.cs
- Peer.cs
- SystemResources.cs
- ListDictionaryInternal.cs
- DependencyPropertyKey.cs
- SvcFileManager.cs
- LinkLabelLinkClickedEvent.cs
- HostedTransportConfigurationManager.cs
- IndexedEnumerable.cs
- SamlAuthorizationDecisionClaimResource.cs
- XmlTextWriter.cs
- Emitter.cs
- XPathDocumentBuilder.cs
- HtmlInputImage.cs
- DataTransferEventArgs.cs
- QueryableDataSourceEditData.cs
- LocatorPartList.cs
- listitem.cs
- NullableIntMinMaxAggregationOperator.cs
- WebHttpSecurityModeHelper.cs
- SmiMetaData.cs
- ServiceOperationDetailViewControl.cs