异常信息是:
服务器无法处理请求。 ---> 超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。所在代码是:
             for(int i = 0; i < tablename.Length ; i++){
                ZSSyn.Service UInsert = new ZSSyn.Service();                 
                UInsert.Url = cnfg.URLString;
                string str_rtn = UInsert.getMaxId(tablename[i]);   //调用ws接口方法,就是此行抛的异常
                ......
             }很奇怪,异常中所说的连接池是指接口所在平台的连接池吗?那是不是要try...catch...它呢?怎么样让程序不抛此异常继续走下去呢?谢谢指点!

解决方案 »

  1.   

    你这个For循环不合适。每循环一次都使用一个新的Service。不能所有的循环都使用一个Service吗?
    ZSSyn.Service UInsert = new ZSSyn.Service();                
    for(int i = 0; i < tablename.Length ; i++)

        UInsert.Url = cnfg.URLString; 
        string str_rtn = UInsert.getMaxId(tablename[i]); 
        ...... 
    }
      

  2.   

    可能就是因为你的循环次数太多了,每一次循环都生成一个新的Service,而系统来不及释放。所以连接池被占满而报出了那个错误。你这样设计既效率低,又占内存。
      

  3.   

    把service的创建放到循环外了,可是还是会抛此异常啊