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
- Attributes.cs
- TagNameToTypeMapper.cs
- PageClientProxyGenerator.cs
- XmlValueConverter.cs
- TypeConverterValueSerializer.cs
- TranslateTransform3D.cs
- OdbcPermission.cs
- WindowsSolidBrush.cs
- MarkupCompilePass1.cs
- XmlSchemaSet.cs
- FormatVersion.cs
- KnownBoxes.cs
- Grammar.cs
- RTLAwareMessageBox.cs
- BackgroundWorker.cs
- XmlILIndex.cs
- CommonDialog.cs
- ReflectionUtil.cs
- ImmutablePropertyDescriptorGridEntry.cs
- X509Certificate2Collection.cs
- Keywords.cs
- elementinformation.cs
- GeometryModel3D.cs
- SupportingTokenBindingElement.cs
- BoundColumn.cs
- CqlErrorHelper.cs
- DataControlFieldCell.cs
- JsonReaderWriterFactory.cs
- RequestCache.cs
- FormViewPageEventArgs.cs
- Stacktrace.cs
- ConfigurationLocationCollection.cs
- RemotingAttributes.cs
- OpenFileDialog.cs
- ParserContext.cs
- HostProtectionPermission.cs
- ListSortDescription.cs
- Renderer.cs
- ReadOnlyDataSourceView.cs
- DBCommand.cs
- CategoryGridEntry.cs
- CompressedStack.cs
- ScrollChrome.cs
- CatalogUtil.cs
- ObjectViewListener.cs
- TemplatePagerField.cs
- WindowsListViewScroll.cs
- DataGrid.cs
- ListViewUpdatedEventArgs.cs
- EncoderFallback.cs
- Identity.cs
- SafeCoTaskMem.cs
- DynamicQueryStringParameter.cs
- CatalogPartCollection.cs
- EntityAdapter.cs
- TextCollapsingProperties.cs
- ClosableStream.cs
- DynamicRenderer.cs
- HttpRequestWrapper.cs
- ViewBox.cs
- DocumentPageViewAutomationPeer.cs
- TypeElementCollection.cs
- ProfileSettings.cs
- RawAppCommandInputReport.cs
- MergeFilterQuery.cs
- PrivateFontCollection.cs
- XmlSchemaObjectCollection.cs
- QueryPageSettingsEventArgs.cs
- WindowsTab.cs
- XmlObjectSerializerReadContextComplex.cs
- ToolStripMenuItem.cs
- Timer.cs
- TreeViewImageKeyConverter.cs
- ToolStripScrollButton.cs
- SizeKeyFrameCollection.cs
- Environment.cs
- XPathNodePointer.cs
- AttachedPropertyBrowsableAttribute.cs
- AppDomainAttributes.cs
- DataBinder.cs
- SqlParameterizer.cs
- ListenerServiceInstallComponent.cs
- EncoderParameter.cs
- MessageSecurityOverTcpElement.cs
- KoreanCalendar.cs
- RTLAwareMessageBox.cs
- SchemaImporterExtensionElementCollection.cs
- DocumentSequenceHighlightLayer.cs
- SqlUserDefinedTypeAttribute.cs
- QueryOperator.cs
- Token.cs
- StringKeyFrameCollection.cs
- SimpleWebHandlerParser.cs
- X509Utils.cs
- ParserContext.cs
- ActivityBuilderXamlWriter.cs
- CustomAttributeBuilder.cs
- DataSourceXmlSerializationAttribute.cs
- RelationshipFixer.cs
- WorkflowApplicationCompletedException.cs