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
- ProcessDesigner.cs
- RequestChannel.cs
- Avt.cs
- WebPartDisplayModeEventArgs.cs
- OperandQuery.cs
- ActiveXSite.cs
- FragmentQuery.cs
- BindToObject.cs
- DataViewManagerListItemTypeDescriptor.cs
- Animatable.cs
- FilterQuery.cs
- smtpconnection.cs
- ToolStripItem.cs
- HostedHttpRequestAsyncResult.cs
- SpecialTypeDataContract.cs
- LogicalTreeHelper.cs
- X509AsymmetricSecurityKey.cs
- OneWayChannelFactory.cs
- FileRegion.cs
- SecurityDocument.cs
- CollectionsUtil.cs
- ThrowHelper.cs
- RotateTransform3D.cs
- NamedElement.cs
- ColorAnimation.cs
- ClientSideQueueItem.cs
- SamlAuthorizationDecisionClaimResource.cs
- StaticSiteMapProvider.cs
- Rotation3D.cs
- ImageListUtils.cs
- EdmRelationshipRoleAttribute.cs
- Imaging.cs
- ValidationHelper.cs
- IsolatedStorageSecurityState.cs
- WebSysDefaultValueAttribute.cs
- CodeSnippetCompileUnit.cs
- SystemNetHelpers.cs
- TypeUtil.cs
- TemplateBindingExtension.cs
- PublishLicense.cs
- PasswordTextNavigator.cs
- LayeredChannelListener.cs
- MdiWindowListItemConverter.cs
- IsolatedStorageException.cs
- DirectionalLight.cs
- _DigestClient.cs
- HttpListenerRequest.cs
- AttributeAction.cs
- ProfileParameter.cs
- TreeNode.cs
- ISFClipboardData.cs
- HostVisual.cs
- EventArgs.cs
- MappingItemCollection.cs
- Material.cs
- InArgumentConverter.cs
- BitmapDecoder.cs
- CharUnicodeInfo.cs
- ToolStripItemCollection.cs
- PropertyGridCommands.cs
- TextParagraphProperties.cs
- VariableQuery.cs
- IsolatedStorageFilePermission.cs
- XmlCodeExporter.cs
- TextPointer.cs
- LinqTreeNodeEvaluator.cs
- LoginAutoFormat.cs
- AddingNewEventArgs.cs
- TakeQueryOptionExpression.cs
- PersonalizationState.cs
- Visual.cs
- EventLogPermissionAttribute.cs
- PropertyInfoSet.cs
- _ListenerAsyncResult.cs
- SoapParser.cs
- FileInfo.cs
- FormsAuthenticationCredentials.cs
- DataGridRow.cs
- SessionStateContainer.cs
- WindowsFont.cs
- BindToObject.cs
- WSDualHttpSecurityElement.cs
- MultiDataTrigger.cs
- MarkupObject.cs
- RepeaterItemCollection.cs
- DataListItemEventArgs.cs
- RegistryKey.cs
- DataGridItem.cs
- COAUTHINFO.cs
- LicFileLicenseProvider.cs
- TrackingDataItem.cs
- WindowsGrip.cs
- DecoderReplacementFallback.cs
- GroupBox.cs
- TextEffectCollection.cs
- bindurihelper.cs
- OrderedDictionary.cs
- ProcessModelSection.cs
- ProxyFragment.cs
- Section.cs