当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 对指针越来越胡涂了 ......
    摘要: 就是子程序中的static 变量,子程运行结序后,仍然保存在内存中,下次调用时仍起作用。 我正在学习delphi,翻遍了全书也没找到相关描述。请问有吗?如果没有,怎么实现(不用全局变量或指针),最好有例程。 大家来讨论吧。:d ......


重新调用一个方法。

如果客户端调用一个方法,而丢失了服务器的响应,那么重新调用这个方法是不合适的。比如说,如果向服务器发送一个采购大量木材的订单,服务器已经介绍到这个请求并且进行了处理,但是客户机却丢失了服务器返回的响应,那么客户端重新尝试调用这个方式是不允许的。  
   
  -----------  
  但是在web   service的体系结构中如何避免呢?

NO.1   作者: qqchen79

这是目前WebService的主要问题之一,还没有标准的解决方法。  
  先要在Soap上面实现Route和Transaction支持,然后才有Reliable   Message。  
  如果要自己实现的话可以参考这个:  
  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexxml/html/xml11192001.asp

NO.2   作者: Lostinet

一个有效的模型可以这样:  
   
  function   Post(mypostinfo)  
  {  
  done=false;  
  try  
  {  
          ID=SoapClient.Start_Post("postwhat")  
          SoapClient.Do_Post(mypostinfo,ID)  
  }catch(x){  
          //无论情况怎么样,申请无效的。  
          //重复这个过程,得到新的ID,重新发一次。  
  }  
   
  do  
  {  
  try  
  {  
  if(SoapClient.End_Post(ID))  
  {  
  done=true  
  break;  
  }  
  }  
  catch(x)  
  {  
  //这里不同,可能定单已经生成了。  
  //Cllient应该把ID保留。。那样可以下次查询  
  }  
  if(not_support_save)//如果没有办法保存了,放弃了。  
  {  
  break;  
  }  
  save(ID)  
  //这里要么确定是否重发,什么其他东西的。。。  
  //或者break;  
  }while(1)  
  return   done;  
  }  
  Post(mypostinfo)  
  以后重复这个,一直到不想理会这个帐单为止:  
   
   
  if(done==false)  
  {  
  //那么没有办法了,只能:  
  haveDone=false  
  coll=SoapClient.EnumMyPost()  
  for(i=0;i<coll.length;i++)  
  {  
  postinfo=coll.item(i)  
  if(CheckIsEqual(postinfo,mypostinfo))  
  {  
  haveDone=true  
  break  
  }  
  }  
  if(!havedone)Post(mypostinfo)  
  }


 ·使用cuteftp时出的错    »显示摘要«
    摘要: 在用cuteftp上传文件时有时候会出现以下错误 150 opening ascii mode data connection for /bin/ls. 425 cant open data connection. 而在别人机器上传却是正常的(adsl共享的主机上) 这是怎么回事? ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE