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
- XmlnsPrefixAttribute.cs
- ComponentSerializationService.cs
- WebEventCodes.cs
- ObjectSecurity.cs
- ServiceParser.cs
- x509store.cs
- WebPartMinimizeVerb.cs
- ModelUtilities.cs
- Region.cs
- ColorTranslator.cs
- MultipartIdentifier.cs
- EnumBuilder.cs
- ClassImporter.cs
- RuntimeResourceSet.cs
- DataGridViewRow.cs
- DataTableNewRowEvent.cs
- HexParser.cs
- FixedSOMElement.cs
- OrthographicCamera.cs
- CodeMemberEvent.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- MatrixCamera.cs
- Point3DAnimation.cs
- MailBnfHelper.cs
- InkCanvasFeedbackAdorner.cs
- TemplatedWizardStep.cs
- ScopelessEnumAttribute.cs
- Size3D.cs
- SiteMapHierarchicalDataSourceView.cs
- XmlReflectionMember.cs
- ButtonBaseAdapter.cs
- Relationship.cs
- TypeDescriptionProviderAttribute.cs
- Pts.cs
- SurrogateSelector.cs
- TraceLog.cs
- Action.cs
- NamespaceList.cs
- SqlInfoMessageEvent.cs
- TcpAppDomainProtocolHandler.cs
- KnownTypes.cs
- StaticSiteMapProvider.cs
- ToolStripItemClickedEventArgs.cs
- ControllableStoryboardAction.cs
- SafeHandles.cs
- BatchParser.cs
- UIPermission.cs
- SimpleHandlerBuildProvider.cs
- ServiceContractViewControl.cs
- NotifyCollectionChangedEventArgs.cs
- StrongNameKeyPair.cs
- DefaultIfEmptyQueryOperator.cs
- MetadataCache.cs
- AsyncDataRequest.cs
- IsolatedStorageException.cs
- DropSource.cs
- SchemaReference.cs
- TreePrinter.cs
- CategoryAttribute.cs
- CustomDictionarySources.cs
- SoapExtensionStream.cs
- Operators.cs
- SelectionProviderWrapper.cs
- StringReader.cs
- DomNameTable.cs
- ConfigurationSchemaErrors.cs
- ThemeDirectoryCompiler.cs
- StyleBamlTreeBuilder.cs
- ClientSettingsStore.cs
- OuterGlowBitmapEffect.cs
- SmtpLoginAuthenticationModule.cs
- CodeDomConfigurationHandler.cs
- OperandQuery.cs
- ManagementBaseObject.cs
- ScriptManagerProxy.cs
- ExpressionReplacer.cs
- FieldToken.cs
- SliderAutomationPeer.cs
- PerspectiveCamera.cs
- NumericUpDown.cs
- ToolStripPanelCell.cs
- RegularExpressionValidator.cs
- BulletedListEventArgs.cs
- FontStyles.cs
- ContextInformation.cs
- EventListener.cs
- MenuItemAutomationPeer.cs
- WebPartConnectionsCancelVerb.cs
- TimeZoneInfo.cs
- SimpleModelProvider.cs
- MiniCustomAttributeInfo.cs
- Int64Animation.cs
- IIS7WorkerRequest.cs
- UInt64.cs
- DeviceOverridableAttribute.cs
- SocketElement.cs
- CodeCatchClauseCollection.cs
- Rights.cs
- MemberRelationshipService.cs
- SystemParameters.cs