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
- Button.cs
- EventLogPermissionEntry.cs
- ExcCanonicalXml.cs
- TypeResolvingOptionsAttribute.cs
- DbProviderSpecificTypePropertyAttribute.cs
- RoutedEvent.cs
- ClusterUtils.cs
- _NtlmClient.cs
- DataMemberConverter.cs
- NamedPermissionSet.cs
- OleDbSchemaGuid.cs
- diagnosticsswitches.cs
- XmlCodeExporter.cs
- CqlErrorHelper.cs
- SocketElement.cs
- DriveNotFoundException.cs
- DictionaryChange.cs
- EditingCoordinator.cs
- DataBinding.cs
- MD5CryptoServiceProvider.cs
- HttpStreamMessage.cs
- SecurityKeyIdentifierClause.cs
- ImageProxy.cs
- SemaphoreSecurity.cs
- SqlReferenceCollection.cs
- HttpException.cs
- PopupEventArgs.cs
- AuthenticationService.cs
- DataSourceXmlTextReader.cs
- Style.cs
- StateMachine.cs
- compensatingcollection.cs
- TrackingWorkflowEventArgs.cs
- TagPrefixAttribute.cs
- ConditionalExpression.cs
- RetrieveVirtualItemEventArgs.cs
- OpenFileDialog.cs
- NonceToken.cs
- ButtonStandardAdapter.cs
- DataGridCellAutomationPeer.cs
- CalendarDay.cs
- UserPersonalizationStateInfo.cs
- PeerValidationBehavior.cs
- AutoResetEvent.cs
- DataGridViewCellStyle.cs
- ObjectCloneHelper.cs
- PagerSettings.cs
- StringKeyFrameCollection.cs
- Int32AnimationUsingKeyFrames.cs
- KeyManager.cs
- XPathSelfQuery.cs
- RegexMatchCollection.cs
- BindingCompleteEventArgs.cs
- SqlConnectionPoolProviderInfo.cs
- objectquery_tresulttype.cs
- XmlSchemaSearchPattern.cs
- EntityProxyFactory.cs
- EntityDataSourceChangingEventArgs.cs
- ProtectedConfigurationProviderCollection.cs
- MaterialCollection.cs
- CaseInsensitiveComparer.cs
- Directory.cs
- ListBoxChrome.cs
- xmlsaver.cs
- _ScatterGatherBuffers.cs
- HttpException.cs
- ConstantCheck.cs
- SerializableAttribute.cs
- _ScatterGatherBuffers.cs
- Queue.cs
- FormatConvertedBitmap.cs
- Selector.cs
- Int64Converter.cs
- Regex.cs
- Options.cs
- TabControlCancelEvent.cs
- CacheChildrenQuery.cs
- FontDialog.cs
- Win32KeyboardDevice.cs
- AssemblyCache.cs
- X509Extension.cs
- SiteMapNode.cs
- ObjectListTitleAttribute.cs
- MetaForeignKeyColumn.cs
- hwndwrapper.cs
- CodeDOMUtility.cs
- TextSchema.cs
- LineServicesCallbacks.cs
- Comparer.cs
- Oci.cs
- recordstatescratchpad.cs
- EasingKeyFrames.cs
- CodeObjectCreateExpression.cs
- AutomationPattern.cs
- SpeechAudioFormatInfo.cs
- AssemblyResourceLoader.cs
- Table.cs
- XMLUtil.cs
- SQLCharsStorage.cs
- PropertyManager.cs