服务端
public interface IService
{
[OperationContract]
string Get();
}
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Multiple)]
public class Service : IService
{
public string Get()
{
System.Threading.Thread.Sleep(3000);
string s= string.Format("进入。。type:{0}", DateTime.Now.ToLongTimeString());
return s;
}
}
客户端调用
ServiceClient client2 = new ServiceClient();
client2.Open();
for (int i = 0; i < 5; i++)
{
Response.Write(client2.Get() + DateTime.Now.ToString());
}
client2.Close();
没办法并发,请高手教一下!!!!!!!!!!!!!
说明:basicHttpBinding绑定方式
我是用自己本机adsl宽带做服务器的,通过性能监性器看到,每当current connections 达到30个左右,wcf服务就无响应。这个问题是不是跟adsl宽带有限制上行并发链接有关系?
你想要什么效果?怎样并发?
wcf 有没有异步handler? 试试那个 ,或者 iis单个进程的线程数在那多, 你可以设置大或者其多个进程
服务端设置最大Session,客户端在调用的 完成里Close()
估计是System.Threading.Thread.Sleep(3000);的影响,在单调模式下每一次请求都会创建是一个服务实例,所以并发是会发生的就算你的ConcurrencyMode为默认值也可以实现并发
遇到了同样的问题。不过我这里并不是没反应,是阻塞了。而且你的客户端是多线程并发么?