首页 新闻 会员 周边 捐助

wcf以IIS为宿主,并发的问题

0
悬赏园豆:100 [已关闭问题] 关闭于 2013-03-24 00:22

服务端

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宽带有限制上行并发链接有关系?

SAL的主页 SAL | 初学一级 | 园豆:107
提问于:2013-03-19 11:33
< >
分享
所有回答(5)
0

你想要什么效果?怎样并发?

geass.. | 园豆:1821 (小虾三级) | 2013-03-19 16:13
0

wcf 有没有异步handler?  试试那个 ,或者 iis单个进程的线程数在那多, 你可以设置大或者其多个进程

假正经哥哥 | 园豆:264 (菜鸟二级) | 2013-03-20 08:59
0

服务端设置最大Session,客户端在调用的 完成里Close()

在 水 一 方 | 园豆:1097 (小虾三级) | 2013-03-20 22:57
0

估计是System.Threading.Thread.Sleep(3000);的影响,在单调模式下每一次请求都会创建是一个服务实例,所以并发是会发生的就算你的ConcurrencyMode为默认值也可以实现并发

Stone zhang | 园豆:222 (菜鸟二级) | 2013-04-03 14:14
0

遇到了同样的问题。不过我这里并不是没反应,是阻塞了。而且你的客户端是多线程并发么?

Songlw | 园豆:110 (初学一级) | 2013-11-29 01:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册