<serviceThrottling maxConcurrentCalls="100" maxConcurrentInstances="100" maxConcurrentSessions="100"/>
为什么我改了 并发数 实例数 会话数 并发的操作一直是是只能10个呢。我将maxConcurrentCalls改为5 可以控制5个并发 大于10就不行...用的是SL ...查了很多资料...没办法..http://msdn.microsoft.com/zh-cn/library/ms752260.aspx
为什么我改了 并发数 实例数 会话数 并发的操作一直是是只能10个呢。我将maxConcurrentCalls改为5 可以控制5个并发 大于10就不行...用的是SL ...查了很多资料...没办法..http://msdn.microsoft.com/zh-cn/library/ms752260.aspx
解决方案 »
- chart 控件 曲线点击事件
- 求一段C#线性表基本运算代码,要求要有具体的实现过程(给相应方法传入参数验证结果)
- c# socket
- 去掉路径中的转义字符
- 自定义用户控件UserControl,如何设置他工具箱的图标文件。
- vs2005+sql server2000连接超时
- 菜鸟问问题。
- 可否将XML中的某个(或多个)节点通过Socket发送到另外一台机器上?愚翁老大....HELP!!!
- 关于对cache中数据的修改问题。好郁闷哦。把整个设计都打乱了。~~~~~求救啊。
- 帮助看看下面的程序,if 语句不正常
- C# 解析json字符串的问题
- 请问,如何理解WaitOne方法(Int32, Boolean),退出同步区域?
MaxConcurrentInstances //服务中可以一次执行的最多 System.ServiceModel.InstanceContext 对象数
MaxConcurrentSessions //对象可一次接受的最多会话数的值
using System;
using System.Collections.ObjectModel;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;/// <summary>
/// 吞吐量配置实类
/// </summary>
public class ServiceThrottlingAttribute : Attribute, IServiceBehavior
{
private ServiceThrottlingBehavior Throttling; /// <summary>
/// 实例化 ServiceThrottlingAttribute 新的实例
/// </summary>
public ServiceThrottlingAttribute()
: this(64, System.Int32.MaxValue, 10)
{ } /// <summary>
/// 实例化 ServiceThrottlingAttribute 新的实例
/// </summary>
/// <param name="maxConcurrentCalls">指定整个 System.ServiceModel.ServiceHost 中正在处理的最多消息数</param>
/// <param name="maxConcurrentInstances">指定服务中可以一次执行的最多 System.ServiceModel.InstanceContext 对象数</param>
/// <param name="maxConcurrentSessions">指定 System.ServiceModel.ServiceHost 对象可一次接受的最多会话数的值</param>
public ServiceThrottlingAttribute(int maxConcurrentCalls, int maxConcurrentInstances, int maxConcurrentSessions)
{
this.Throttling = new ServiceThrottlingBehavior();
this.MaxConcurrentCalls = maxConcurrentCalls;
this.MaxConcurrentInstances = maxConcurrentInstances;
this.MaxConcurrentSessions = maxConcurrentSessions;
} /// <summary>
/// 获取或设置一个值,该值指定整个 System.ServiceModel.ServiceHost 中正在处理的最多消息数(默认64)。
/// </summary>
public int MaxConcurrentCalls
{
get { return this.Throttling.MaxConcurrentCalls; }
set { this.Throttling.MaxConcurrentCalls = value; }
} /// <summary>
/// 获取或设置一个值,该值指定服务中可以一次执行的最多 System.ServiceModel.InstanceContext 对象数(默认System.Int32.MaxValue)。
/// </summary>
public int MaxConcurrentInstances
{
get { return this.Throttling.MaxConcurrentInstances; }
set { this.Throttling.MaxConcurrentInstances = value; }
} /// <summary>
/// 获取或设置一个指定 System.ServiceModel.ServiceHost 对象可一次接受的最多会话数的值(默认10)。
/// </summary>
public int MaxConcurrentSessions
{
get { return this.Throttling.MaxConcurrentSessions; }
set { this.Throttling.MaxConcurrentSessions = value; }
} #region IServiceBehavior 成员 /// <summary>
///
/// </summary>
/// <param name="serviceDescription"></param>
/// <param name="serviceHostBase"></param>
/// <param name="endpoints"></param>
/// <param name="bindingParameters"></param>
public void AddBindingParameters(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase, System.Collections.ObjectModel.Collection<ServiceEndpoint> endpoints, System.ServiceModel.Channels.BindingParameterCollection bindingParameters)
{
} /// <summary>
///
/// </summary>
/// <param name="serviceDescription"></param>
/// <param name="serviceHostBase"></param>
public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
{
ServiceThrottlingBehavior CurrentThrottling = serviceDescription.Behaviors.Find<ServiceThrottlingBehavior>();
if (CurrentThrottling == null)
{
serviceDescription.Behaviors.Add(this.Throttling);
}
} /// <summary>
///
/// </summary>
/// <param name="serviceDescription"></param>
/// <param name="serviceHostBase"></param>
public void Validate(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
{
} #endregion
}
将这个配置到WCF服务器端的类中
/// <summary>
/// 消息服务 AddressFilterMode = System.ServiceModel.AddressFilterMode.Any
/// </summary>
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, UseSynchronizationContext = false, ConcurrencyMode = ConcurrencyMode.Multiple)]
[ServiceThrottling(MaxConcurrentSessions = int.MaxValue, MaxConcurrentInstances = int.MaxValue, MaxConcurrentCalls = int.MaxValue)]
public class WCFService:IWCFService //WCF接口
{}
//这样就可以了
ServiceThrottling 不是自定义类的名称吗?