wcf服务的代码 [ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession,ConcurrencyMode=ConcurrencyMode.Multiple)]
public class Service1 : IService1
{
public string GetData(int value)
{
JBEModel.Comm.log("调用时间:" + DateTime.Now + " " + value, JBEModel.LogType.WcfLogin);
System.Threading.Thread.Sleep(10000);
return string.Format("You entered: {0}", DateTime.Now + " :" + value);
}
}
客户端调用的代码
protected void Page_Load(object sender, EventArgs e)
{
ServiceReference.Service1Client client = new Service1Client();
Response.Write(client.GetData(3));
}现在同时打开多个客户端页面一一刷新
2012/11/22 02:50:18 调用时间:2012/11/22 14:50:18 3
2012/11/22 02:50:28 调用时间:2012/11/22 14:50:28 3
2012/11/22 02:50:38 调用时间:2012/11/22 14:50:38 3
2012/11/22 02:50:48 调用时间:2012/11/22 14:50:48 3
2012/11/22 02:50:58 调用时间:2012/11/22 14:50:58 3
2012/11/22 02:51:08 调用时间:2012/11/22 14:51:08 3
2012/11/22 02:51:18 调用时间:2012/11/22 14:51:18 3
为什么不能并发?
demo在这
public class Service1 : IService1
{
public string GetData(int value)
{
JBEModel.Comm.log("调用时间:" + DateTime.Now + " " + value, JBEModel.LogType.WcfLogin);
System.Threading.Thread.Sleep(10000);
return string.Format("You entered: {0}", DateTime.Now + " :" + value);
}
}
客户端调用的代码
protected void Page_Load(object sender, EventArgs e)
{
ServiceReference.Service1Client client = new Service1Client();
Response.Write(client.GetData(3));
}现在同时打开多个客户端页面一一刷新
2012/11/22 02:50:18 调用时间:2012/11/22 14:50:18 3
2012/11/22 02:50:28 调用时间:2012/11/22 14:50:28 3
2012/11/22 02:50:38 调用时间:2012/11/22 14:50:38 3
2012/11/22 02:50:48 调用时间:2012/11/22 14:50:48 3
2012/11/22 02:50:58 调用时间:2012/11/22 14:50:58 3
2012/11/22 02:51:08 调用时间:2012/11/22 14:51:08 3
2012/11/22 02:51:18 调用时间:2012/11/22 14:51:18 3
为什么不能并发?
demo在这
http://msdn.microsoft.com/zh-cn/library/ms731193.aspx
这里想要不区分会话状态,就应该设置为InstanceContextMode.PerCall模式,肯定可行。