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
- DynamicResourceExtensionConverter.cs
- WpfPayload.cs
- PeerInputChannel.cs
- objectresult_tresulttype.cs
- HtmlTitle.cs
- TreeView.cs
- ClipboardData.cs
- StorageAssociationSetMapping.cs
- CatalogZone.cs
- ProjectionPruner.cs
- InstancePersistenceEvent.cs
- AssertSection.cs
- LoginName.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- AspNetHostingPermission.cs
- SafeNativeMemoryHandle.cs
- XPathNode.cs
- ImageAutomationPeer.cs
- CharConverter.cs
- IDQuery.cs
- Rules.cs
- SqlBulkCopyColumnMappingCollection.cs
- MutexSecurity.cs
- Random.cs
- SkinBuilder.cs
- UnaryNode.cs
- DataObjectFieldAttribute.cs
- ErasingStroke.cs
- DesignBindingPicker.cs
- DataGridViewCellEventArgs.cs
- StrongName.cs
- OptimisticConcurrencyException.cs
- GridViewRowPresenterBase.cs
- FixedTextPointer.cs
- FixedSOMImage.cs
- ProfilePropertySettings.cs
- ConstraintManager.cs
- MenuItemCollection.cs
- XPathDocument.cs
- DesignerVerb.cs
- EntityDataSourceValidationException.cs
- ChangePasswordAutoFormat.cs
- CharStorage.cs
- XmlCharType.cs
- TypeNameHelper.cs
- BufferBuilder.cs
- MenuItemStyleCollection.cs
- DataGridColumnCollection.cs
- Boolean.cs
- TrustSection.cs
- FigureParaClient.cs
- TrustManagerMoreInformation.cs
- GenericTypeParameterConverter.cs
- figurelength.cs
- TemplateContainer.cs
- SqlDataSourceParameterParser.cs
- DoubleAnimationBase.cs
- WebBrowsableAttribute.cs
- DateBoldEvent.cs
- BamlLocalizableResourceKey.cs
- Vector.cs
- WpfSharedXamlSchemaContext.cs
- ReferentialConstraint.cs
- DataGridComboBoxColumn.cs
- FastEncoderWindow.cs
- PublisherIdentityPermission.cs
- DataViewSettingCollection.cs
- NegationPusher.cs
- SafePEFileHandle.cs
- ListInitExpression.cs
- ExecutionContext.cs
- TextServicesCompartmentEventSink.cs
- ForeignConstraint.cs
- ObjectSet.cs
- ListControl.cs
- EdmPropertyAttribute.cs
- ClientApiGenerator.cs
- ContainerControlDesigner.cs
- SizeIndependentAnimationStorage.cs
- embossbitmapeffect.cs
- XmlComplianceUtil.cs
- FullTrustAssemblyCollection.cs
- BitmapCodecInfo.cs
- DrawListViewItemEventArgs.cs
- ArgumentNullException.cs
- GraphicsPath.cs
- Rfc2898DeriveBytes.cs
- TagPrefixInfo.cs
- DynamicMetaObject.cs
- StringValidatorAttribute.cs
- ObjectRef.cs
- StringValidatorAttribute.cs
- MessageDroppedTraceRecord.cs
- RuntimeComponentFilter.cs
- ModuleBuilderData.cs
- MULTI_QI.cs
- OfTypeExpression.cs
- InternalConfigConfigurationFactory.cs
- figurelength.cs
- safelink.cs