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
- CopyOnWriteList.cs
- NamespaceList.cs
- XmlEncoding.cs
- NullReferenceException.cs
- SHA384.cs
- UnsafeNativeMethods.cs
- OdbcParameterCollection.cs
- WebPartConnectionsCloseVerb.cs
- _Events.cs
- SqlUnionizer.cs
- NullableFloatSumAggregationOperator.cs
- SqlUdtInfo.cs
- OperatorExpressions.cs
- PropertyChangedEventManager.cs
- InfoCardBinaryReader.cs
- Dynamic.cs
- ConstructorNeedsTagAttribute.cs
- HiddenFieldDesigner.cs
- Model3DGroup.cs
- RepeaterCommandEventArgs.cs
- _SecureChannel.cs
- DocumentViewerHelper.cs
- XmlDigitalSignatureProcessor.cs
- EntityDataSourceDataSelectionPanel.cs
- FaultBookmark.cs
- HashHelper.cs
- HwndPanningFeedback.cs
- NativeCppClassAttribute.cs
- diagnosticsswitches.cs
- CorrelationManager.cs
- CodeLabeledStatement.cs
- SQLConvert.cs
- PositiveTimeSpanValidatorAttribute.cs
- LineGeometry.cs
- WebPartsPersonalizationAuthorization.cs
- GuidTagList.cs
- ListGeneralPage.cs
- GridViewHeaderRowPresenter.cs
- Rule.cs
- ClientFormsIdentity.cs
- SchemaImporterExtensionsSection.cs
- XmlToDatasetMap.cs
- SoapMessage.cs
- ListCardsInFileRequest.cs
- Listbox.cs
- DataGridViewRowHeaderCell.cs
- DataRelationPropertyDescriptor.cs
- XmlSchemaNotation.cs
- ApplicationSettingsBase.cs
- PanelStyle.cs
- WebPartDisplayModeCollection.cs
- PointHitTestParameters.cs
- BindingValueChangedEventArgs.cs
- DomNameTable.cs
- SystemInfo.cs
- Types.cs
- HtmlTableRow.cs
- RadioButtonFlatAdapter.cs
- EventWaitHandleSecurity.cs
- PenThread.cs
- ActivityValidator.cs
- NestedContainer.cs
- COM2ComponentEditor.cs
- TreeBuilderBamlTranslator.cs
- WebPartConnectionsEventArgs.cs
- ListBindingConverter.cs
- SourceSwitch.cs
- MultiTargetingUtil.cs
- BasicCellRelation.cs
- StyleSheetRefUrlEditor.cs
- ViewEventArgs.cs
- HTTPNotFoundHandler.cs
- StylusPoint.cs
- SamlAdvice.cs
- WebException.cs
- DbInsertCommandTree.cs
- COM2PropertyPageUITypeConverter.cs
- FormViewRow.cs
- Thread.cs
- DbConnectionPoolCounters.cs
- ColumnWidthChangingEvent.cs
- DataIdProcessor.cs
- SizeValueSerializer.cs
- ICspAsymmetricAlgorithm.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- _HeaderInfoTable.cs
- ListenerElementsCollection.cs
- EntityDataSourceQueryBuilder.cs
- ConcurrencyMode.cs
- HostExecutionContextManager.cs
- BulletedListEventArgs.cs
- TreeBuilderBamlTranslator.cs
- CompoundFileIOPermission.cs
- LogConverter.cs
- CharacterBufferReference.cs
- IFlowDocumentViewer.cs
- ContextMenuAutomationPeer.cs
- StorageEntitySetMapping.cs
- Models.cs
- TextSerializer.cs