Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / xsp / System / Web / IdleTimeoutMonitor.cs / 1 / IdleTimeoutMonitor.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * Request timeout manager -- implements the request timeout mechanism */ namespace System.Web { using System.Threading; using System.Collections; using System.Web.Hosting; using System.Web.Util; internal class IdleTimeoutMonitor { private TimeSpan _idleTimeout; // the timeout value private DateTime _lastEvent; // idle since this time private Timer _timer; private readonly TimeSpan _timerPeriod = new TimeSpan(0, 0, 30); // 30 secs internal IdleTimeoutMonitor(TimeSpan timeout) { _idleTimeout = timeout; _timer = new Timer(new TimerCallback(this.TimerCompletionCallback), null, _timerPeriod, _timerPeriod); _lastEvent = DateTime.UtcNow; } internal void Stop() { // stop the timer if (_timer != null) { lock (this) { if (_timer != null) { ((IDisposable)_timer).Dispose(); _timer = null; } } } } internal DateTime LastEvent { // thread-safe property get { DateTime t; lock (this) { t = _lastEvent; } return t; } set { lock (this) { _lastEvent = value; } } } private void TimerCompletionCallback(Object state) { // user idle timer to trim the free list of app instanced HttpApplicationFactory.TrimApplicationInstances(); // no idle timeout if (_idleTimeout == TimeSpan.MaxValue) return; // don't do idle timeout if already shutting down if (HostingEnvironment.ShutdownInitiated) return; // check if there are active requests if (HostingEnvironment.BusyCount != 0) return; // check if enough time passed if (DateTime.UtcNow <= LastEvent.Add(_idleTimeout)) return; // check if debugger is attached if (System.Diagnostics.Debugger.IsAttached) return; // shutdown HttpRuntime.SetShutdownReason(ApplicationShutdownReason.IdleTimeout, SR.GetString(SR.Hosting_Env_IdleTimeout)); HostingEnvironment.InitiateShutdown(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * Request timeout manager -- implements the request timeout mechanism */ namespace System.Web { using System.Threading; using System.Collections; using System.Web.Hosting; using System.Web.Util; internal class IdleTimeoutMonitor { private TimeSpan _idleTimeout; // the timeout value private DateTime _lastEvent; // idle since this time private Timer _timer; private readonly TimeSpan _timerPeriod = new TimeSpan(0, 0, 30); // 30 secs internal IdleTimeoutMonitor(TimeSpan timeout) { _idleTimeout = timeout; _timer = new Timer(new TimerCallback(this.TimerCompletionCallback), null, _timerPeriod, _timerPeriod); _lastEvent = DateTime.UtcNow; } internal void Stop() { // stop the timer if (_timer != null) { lock (this) { if (_timer != null) { ((IDisposable)_timer).Dispose(); _timer = null; } } } } internal DateTime LastEvent { // thread-safe property get { DateTime t; lock (this) { t = _lastEvent; } return t; } set { lock (this) { _lastEvent = value; } } } private void TimerCompletionCallback(Object state) { // user idle timer to trim the free list of app instanced HttpApplicationFactory.TrimApplicationInstances(); // no idle timeout if (_idleTimeout == TimeSpan.MaxValue) return; // don't do idle timeout if already shutting down if (HostingEnvironment.ShutdownInitiated) return; // check if there are active requests if (HostingEnvironment.BusyCount != 0) return; // check if enough time passed if (DateTime.UtcNow <= LastEvent.Add(_idleTimeout)) return; // check if debugger is attached if (System.Diagnostics.Debugger.IsAttached) return; // shutdown HttpRuntime.SetShutdownReason(ApplicationShutdownReason.IdleTimeout, SR.GetString(SR.Hosting_Env_IdleTimeout)); HostingEnvironment.InitiateShutdown(); } } } // 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
- PassportPrincipal.cs
- Function.cs
- SqlCachedBuffer.cs
- BrushValueSerializer.cs
- _BasicClient.cs
- ServiceProviders.cs
- HtmlElementCollection.cs
- dataprotectionpermission.cs
- XmlSignatureProperties.cs
- XomlCompilerError.cs
- GcSettings.cs
- EnumValAlphaComparer.cs
- ActivityPreviewDesigner.cs
- KnownTypesProvider.cs
- UrlAuthFailureHandler.cs
- ConfigUtil.cs
- UnsignedPublishLicense.cs
- PointConverter.cs
- DynamicExpression.cs
- AnonymousIdentificationSection.cs
- XPathMessageFilterElementComparer.cs
- XmlHierarchyData.cs
- DataTransferEventArgs.cs
- EdmEntityTypeAttribute.cs
- XmlC14NWriter.cs
- BitmapEditor.cs
- Binding.cs
- UserPreferenceChangedEventArgs.cs
- MarkupCompilePass1.cs
- WindowsRichEditRange.cs
- XmlSchemaSimpleTypeUnion.cs
- Validator.cs
- BitmapEffectvisualstate.cs
- BinaryFormatter.cs
- MemberMaps.cs
- BamlCollectionHolder.cs
- EventDescriptor.cs
- InternalDispatchObject.cs
- DiagnosticsConfiguration.cs
- CodeCompileUnit.cs
- ComplexBindingPropertiesAttribute.cs
- ReflectPropertyDescriptor.cs
- XPathAncestorQuery.cs
- QilReference.cs
- ProfileEventArgs.cs
- PasswordBox.cs
- WebPartChrome.cs
- AssemblyResolver.cs
- DefaultPropertyAttribute.cs
- Codec.cs
- TextElementEnumerator.cs
- DeviceContexts.cs
- MouseButton.cs
- DateTimeFormatInfo.cs
- ItemCheckEvent.cs
- TraceContextRecord.cs
- Activator.cs
- ElementProxy.cs
- PropertyNames.cs
- EntityDataSourceWizardForm.cs
- DynamicDocumentPaginator.cs
- FileEnumerator.cs
- Terminate.cs
- Assign.cs
- NamespaceInfo.cs
- DesignerAttribute.cs
- WindowsAuthenticationModule.cs
- SmtpSection.cs
- XmlDictionaryWriter.cs
- DataTableMapping.cs
- RoutingChannelExtension.cs
- SubqueryRules.cs
- ManifestResourceInfo.cs
- ElementHostAutomationPeer.cs
- UserPreferenceChangingEventArgs.cs
- SafeUserTokenHandle.cs
- ModelProperty.cs
- OdbcConnectionPoolProviderInfo.cs
- PageContentAsyncResult.cs
- MarkupExtensionParser.cs
- Attributes.cs
- ClientSettingsSection.cs
- TransactionOptions.cs
- WebReferenceOptions.cs
- ADMembershipUser.cs
- ServiceReference.cs
- PopupControlService.cs
- ToolboxItemSnapLineBehavior.cs
- IfJoinedCondition.cs
- RequestUriProcessor.cs
- VariantWrapper.cs
- RelationalExpressions.cs
- _Rfc2616CacheValidators.cs
- httpserverutility.cs
- SizeAnimationUsingKeyFrames.cs
- DefaultValueAttribute.cs
- CompiledRegexRunner.cs
- BufferedGraphicsManager.cs
- Int32RectValueSerializer.cs
- SrgsRule.cs