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
- ResourcesGenerator.cs
- ButtonFlatAdapter.cs
- ToolStripControlHost.cs
- SafeNativeMethods.cs
- Comparer.cs
- DictionaryTraceRecord.cs
- Separator.cs
- TrustManagerMoreInformation.cs
- XmlSignatureProperties.cs
- DocumentPageView.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- SqlBuffer.cs
- ReadContentAsBinaryHelper.cs
- Profiler.cs
- QilPatternVisitor.cs
- UIInitializationException.cs
- X509RecipientCertificateServiceElement.cs
- ReadOnlyHierarchicalDataSource.cs
- SiteMapHierarchicalDataSourceView.cs
- TemplateControlBuildProvider.cs
- PropertyCondition.cs
- EdmEntityTypeAttribute.cs
- EncoderExceptionFallback.cs
- WindowsStatusBar.cs
- OfTypeExpression.cs
- metadatamappinghashervisitor.cs
- XmlComment.cs
- ListItemCollection.cs
- ExtractCollection.cs
- SerialPinChanges.cs
- InternalPolicyElement.cs
- LiteralControl.cs
- WebPartZoneDesigner.cs
- Point4D.cs
- Native.cs
- MemberAccessException.cs
- AttributeCollection.cs
- BezierSegment.cs
- XpsFilter.cs
- NamespaceCollection.cs
- PolyQuadraticBezierSegment.cs
- PersonalizationStateInfoCollection.cs
- SamlAuthenticationStatement.cs
- BitSet.cs
- CheckoutException.cs
- GenericEnumConverter.cs
- EntityDesignerUtils.cs
- SharedConnectionWorkflowTransactionService.cs
- SwitchLevelAttribute.cs
- sqlcontext.cs
- securitycriticaldata.cs
- Convert.cs
- SessionStateSection.cs
- CommonRemoteMemoryBlock.cs
- CapabilitiesPattern.cs
- ImageFormat.cs
- StringFunctions.cs
- WebUtil.cs
- ContextMenuStrip.cs
- X509Utils.cs
- TableMethodGenerator.cs
- Grid.cs
- FixedSOMTableCell.cs
- VirtualPath.cs
- RelationshipConstraintValidator.cs
- XmlBinaryWriterSession.cs
- PermissionToken.cs
- HttpConfigurationContext.cs
- ConfigUtil.cs
- AccessViolationException.cs
- OdbcInfoMessageEvent.cs
- SubtreeProcessor.cs
- GatewayDefinition.cs
- Ops.cs
- FunctionQuery.cs
- HtmlTextViewAdapter.cs
- ViewLoader.cs
- ClickablePoint.cs
- HasRunnableWorkflowEvent.cs
- IpcPort.cs
- Image.cs
- SemanticResultKey.cs
- SoapBinding.cs
- FolderBrowserDialogDesigner.cs
- TreeView.cs
- Attributes.cs
- ColumnMapProcessor.cs
- SqlConnection.cs
- ColumnResizeAdorner.cs
- DockingAttribute.cs
- TagMapInfo.cs
- HtmlInputImage.cs
- FieldBuilder.cs
- InternalConfigRoot.cs
- DocumentPageHost.cs
- SemanticResolver.cs
- httpapplicationstate.cs
- LineGeometry.cs
- XmlSchemaInfo.cs
- SecurityTokenProviderContainer.cs