Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Description / ServiceThrottlingBehavior.cs / 1 / ServiceThrottlingBehavior.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Description { using System.Collections.Generic; using System.ServiceModel.Channels; using System.ServiceModel.Dispatcher; using System.ServiceModel; using System.Xml; using System.Runtime.Serialization; using System.Collections.ObjectModel; public class ServiceThrottlingBehavior : IServiceBehavior { int calls = ServiceThrottle.DefaultMaxConcurrentCalls; int sessions = ServiceThrottle.DefaultMaxConcurrentSessions; int instances = Int32.MaxValue; bool maxInstanceSetExplicitly; public int MaxConcurrentCalls { get { return this.calls; } set { if (value <= 0) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.SFxThrottleLimitMustBeGreaterThanZero0))); this.calls = value; } } public int MaxConcurrentSessions { get { return this.sessions; } set { if (value <= 0) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.SFxThrottleLimitMustBeGreaterThanZero0))); this.sessions = value; } } public int MaxConcurrentInstances { get { if (this.maxInstanceSetExplicitly) { return this.instances; } else { //For V1: Default MaxConcurrentInstances should not enforce any throttle //But still it should not be set to Int32.MAX; //So compute default MaxInstances to be large enough to support MaxCalls & MaxSessions. this.instances = this.calls + this.sessions; if (this.instances < 0) { this.instances = Int32.MaxValue; } } return this.instances; } set { if (value <= 0) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.SFxThrottleLimitMustBeGreaterThanZero0))); this.instances = value; this.maxInstanceSetExplicitly = true; } } void IServiceBehavior.Validate(ServiceDescription description, ServiceHostBase serviceHostBase) { } void IServiceBehavior.AddBindingParameters(ServiceDescription description, ServiceHostBase serviceHostBase, Collectionendpoints, BindingParameterCollection parameters) { } void IServiceBehavior.ApplyDispatchBehavior(ServiceDescription description, ServiceHostBase serviceHostBase) { if (serviceHostBase == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("serviceHostBase")); ServiceThrottle serviceThrottle = serviceHostBase.ServiceThrottle; serviceThrottle.MaxConcurrentCalls = this.calls; serviceThrottle.MaxConcurrentSessions = this.sessions; serviceThrottle.MaxConcurrentInstances = this.MaxConcurrentInstances; for (int i=0; i
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Literal.cs
- IntegrationExceptionEventArgs.cs
- DataGridSortCommandEventArgs.cs
- VisualTarget.cs
- PEFileEvidenceFactory.cs
- WebResourceUtil.cs
- StrokeNodeOperations.cs
- SqlParameterizer.cs
- LambdaCompiler.Statements.cs
- InstancePersistenceEvent.cs
- IdentifierService.cs
- WorkflowPersistenceService.cs
- Membership.cs
- DataKey.cs
- ControlParameter.cs
- XmlIgnoreAttribute.cs
- FontInfo.cs
- AuthenticationModuleElement.cs
- EntityClientCacheKey.cs
- ParameterCollection.cs
- GPRECTF.cs
- ConnectionConsumerAttribute.cs
- LockCookie.cs
- FixedStringLookup.cs
- HwndSource.cs
- EncodingDataItem.cs
- TdsParserStaticMethods.cs
- TextStore.cs
- MouseBinding.cs
- DataGridViewCellStyleBuilderDialog.cs
- DataGridState.cs
- TableLayoutRowStyleCollection.cs
- MessageCredentialType.cs
- InvokePattern.cs
- BindUriHelper.cs
- VersionConverter.cs
- DataGridViewCheckBoxCell.cs
- InteropBitmapSource.cs
- AlphabetConverter.cs
- oledbmetadatacollectionnames.cs
- ControlIdConverter.cs
- GridViewDeletedEventArgs.cs
- AppDomainAttributes.cs
- TableItemStyle.cs
- _Semaphore.cs
- VisualBasicHelper.cs
- BitHelper.cs
- EdmComplexTypeAttribute.cs
- ErrorInfoXmlDocument.cs
- NotifyInputEventArgs.cs
- EntityTypeEmitter.cs
- CharConverter.cs
- WebServiceHostFactory.cs
- TreeNodeClickEventArgs.cs
- DbConnectionStringCommon.cs
- COM2ExtendedUITypeEditor.cs
- StyleBamlTreeBuilder.cs
- SHA1Managed.cs
- NodeLabelEditEvent.cs
- WindowsGraphicsWrapper.cs
- FieldAccessException.cs
- UIElementIsland.cs
- CssTextWriter.cs
- UrlMappingsModule.cs
- XmlQueryContext.cs
- IndentTextWriter.cs
- RelAssertionDirectKeyIdentifierClause.cs
- TreeNodeStyle.cs
- Control.cs
- AlphaSortedEnumConverter.cs
- OleDbTransaction.cs
- DataColumnCollection.cs
- HostVisual.cs
- HttpValueCollection.cs
- XmlImplementation.cs
- XmlNavigatorFilter.cs
- Internal.cs
- AsyncCompletedEventArgs.cs
- TextFormatterContext.cs
- RegexWriter.cs
- Utility.cs
- ValueTypeIndexerReference.cs
- ImageListStreamer.cs
- MatchAttribute.cs
- GradientStop.cs
- XmlDocumentType.cs
- ToolStripRenderer.cs
- WebProxyScriptElement.cs
- WorkflowTraceTransfer.cs
- SecurityDocument.cs
- CacheVirtualItemsEvent.cs
- PersonalizationStateInfoCollection.cs
- WhileDesigner.cs
- TraceHandlerErrorFormatter.cs
- Int16AnimationBase.cs
- WarningException.cs
- ListViewDeletedEventArgs.cs
- ACE.cs
- ConcatQueryOperator.cs
- AuthenticationServiceManager.cs