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
- FactoryId.cs
- SqlTriggerContext.cs
- TextTreeNode.cs
- FrameworkPropertyMetadata.cs
- RegexCompiler.cs
- EtwTrace.cs
- AnchoredBlock.cs
- X509ThumbprintKeyIdentifierClause.cs
- CompiledRegexRunnerFactory.cs
- ObjectStateFormatter.cs
- CodeGroup.cs
- IntSecurity.cs
- UICuesEvent.cs
- ClaimSet.cs
- FieldTemplateFactory.cs
- EncoderBestFitFallback.cs
- DynamicDataExtensions.cs
- DictionaryContent.cs
- CodeBlockBuilder.cs
- EntityDataSourceUtil.cs
- TextDecoration.cs
- baseaxisquery.cs
- PointCollection.cs
- PackagePartCollection.cs
- AlphaSortedEnumConverter.cs
- TdsParameterSetter.cs
- ResXBuildProvider.cs
- DrawingAttributesDefaultValueFactory.cs
- DbConnectionPoolIdentity.cs
- ControlParameter.cs
- OuterGlowBitmapEffect.cs
- HMACSHA256.cs
- entitydatasourceentitysetnameconverter.cs
- IndicCharClassifier.cs
- CounterSample.cs
- ListenerElementsCollection.cs
- BrowserDefinition.cs
- StatusBarDrawItemEvent.cs
- ConfigXmlComment.cs
- Profiler.cs
- SQLMoney.cs
- ColorConvertedBitmap.cs
- GcHandle.cs
- CreateSequenceResponse.cs
- ValueExpressions.cs
- TypeConverterHelper.cs
- EntityStoreSchemaGenerator.cs
- PerformanceCounterScope.cs
- MarkerProperties.cs
- TemplatedWizardStep.cs
- VBCodeProvider.cs
- SchemaImporter.cs
- ContextBase.cs
- PaperSize.cs
- TrackingSection.cs
- MultiSelectRootGridEntry.cs
- AttributeCollection.cs
- XPathNodePointer.cs
- WebEventTraceProvider.cs
- ScriptingSectionGroup.cs
- UpdateCommand.cs
- FacetValueContainer.cs
- ECDsaCng.cs
- ObfuscateAssemblyAttribute.cs
- Constraint.cs
- CategoriesDocumentFormatter.cs
- IgnorePropertiesAttribute.cs
- WindowsMenu.cs
- DataServiceProviderWrapper.cs
- RoleManagerModule.cs
- UnsafeNativeMethods.cs
- DataSourceComponent.cs
- TaiwanLunisolarCalendar.cs
- KnownColorTable.cs
- EventSetter.cs
- ReadOnlyHierarchicalDataSourceView.cs
- JournalEntryStack.cs
- InvokeProviderWrapper.cs
- XmlDataLoader.cs
- NativeMethods.cs
- Point.cs
- MailBnfHelper.cs
- CollectionView.cs
- BitmapEffect.cs
- TargetConverter.cs
- BitStream.cs
- ISAPIApplicationHost.cs
- StateMachineTimers.cs
- XmlSchemaSimpleTypeUnion.cs
- AdPostCacheSubstitution.cs
- ButtonColumn.cs
- IsolatedStorageFileStream.cs
- URLMembershipCondition.cs
- Splitter.cs
- GeneralTransformGroup.cs
- TableRow.cs
- Timer.cs
- TextEditorContextMenu.cs
- TriggerCollection.cs
- DocumentStream.cs