当前位置:编程学习 > C#/ASP.NET >>

关于WCF同一客户端,多个请求,发生等待的问题

WCF中,同一个客户端,向WCF发送一个耗时较长的A请求,而后,再发送一个耗时较短的B请求。这样,造成的一个结果就是,B请求总是等待A请求结束之后再执行。

请问各位大牛,有没有什么方法,或什么配置,可以使这两个请求异步执行,不发生不必要的等待?

多谢啊,各位老大!! WCF 异步 --------------------编程问答-------------------- 实例化wcf服务的多个代理对象去操作, 不要用一个对象去操作 --------------------编程问答-------------------- ServiceBehivior 不要设置 Singleton 并且打开重入 --------------------编程问答-------------------- [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession, ConcurrencyMode = ConcurrencyMode.Reentrant)] 
--------------------编程问答-------------------- 服务端做负载均衡 --------------------编程问答--------------------
引用 1 楼 libinguest 的回复:
实例化wcf服务的多个代理对象去操作, 不要用一个对象去操作


代理对象怎么及时释放,代理对象超过一定的数目之后怎么弄?还是要报等待的错误的! --------------------编程问答--------------------
引用 5 楼 yuyankang 的回复:
Quote: 引用 1 楼 libinguest 的回复:

实例化wcf服务的多个代理对象去操作, 不要用一个对象去操作


代理对象怎么及时释放,代理对象超过一定的数目之后怎么弄?还是要报等待的错误的!



代理对象每次交互结束后,你可以手工调用关闭  --------------------编程问答-------------------- 建议你去看看WCF实例上下文的单调模式、单例模式、会话模式,写个小的Demo比较一下 --------------------编程问答-------------------- 可以使用同一个客户端对象分别调用,只要在两个线程中调用即可。 --------------------编程问答-------------------- 我印象中,WCF在.net3.5以后,是支持 xxxxxAsync 这样名称的异步方法的。

如果没有,那么可以自己多写两行代码在线程中执行,例如写
var client = new MyService.Method1Client();
ThreadPool.QueueUserWorkItem(h =>
{
     client.A();
}
ThreadPool.QueueUserWorkItem(h =>
{
     client.B();
}
补充:.NET技术 ,  Web Services
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,