首页新闻找找看学习计划

webservice 同步的问题??

0
[已解决问题] 解决于 2012-08-12 21:02

js访问webservice ,如果开启开启EnableSession=true那么 js访问方法好像就变成同步访问了(一个方法执行阻塞了另一个),如果不开启就可以各顾各的访问,有什么办法在EnableSession=true的情况下也可以同时访问吗?

webservice.asmx

public class WebService1 : System.Web.Services.WebService
    {
        ContractsClient proxy = new ContractsClient();
   //因为EnableSession=true所以在HelloWord方法先执行后,访问Add(EnableSession也为true)方法不能 马上访问到! [WebMethod(EnableSession
=true)] public string HelloWorld() { Thread.Sleep(5000); return Class1.client.Divide(1.0, 1.0).ToString(); } [WebMethod] public string Add() { //return Class1.client.Add(1.0, 1.0).ToString(); return "add"; }
    //因为EnableSession没设置所以在Asy方法先执行后,访问Add(EnableSession也不设置)能马上访问到!
    [WebMethod] 
public string Asy()
     {
      Thread.Sleep(
5000);
       
return "asy";
      / /return proxy.Asy("test.txt");
     }
    }
koi的主页 koi | 初学一级 | 园豆:3
提问于:2012-08-10 09:53
< >
分享
最佳答案
0
HelloWorld 中也可以开启多个task,来并行运行你的代码的。
这样也是可以加速的访问的。
如果要访问
Session   再开这个吧,还有你的是通过AJAX来访问的吧,按照道理不应该有你这样的问题的。
web的本质本身
就是多线程的。
奖励园豆:5
chenping2008 | 大侠五级 |园豆:9836 | 2012-08-10 20:31

有这个[WebMethod(EnableSession=true)]就不是多线程了,   没有就是了  你也可以试下

koi | 园豆:3 (初学一级) | 2012-08-10 20:40

@koi: 

你的客户端的调用的代码呢?贴出来看看。

chenping2008 | 园豆:9836 (大侠五级) | 2012-08-10 21:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册