最近在做一个数据接口,对方是用C#做的WebService接口,之前都一切正常,但最近对方接口升级之后,我处理一个对象时发生异常。
故障现象:
为一个TXSDecimal类型的对象后,在调用其交易函数时报错。
System.FormatException: 该字符串未被识别为有效的 DateTime。
   在 System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
   在 System.DateTime.Parse(String s)
   在 WS.ServicePrsesent.WriteQD2(ValidateInfoClass Ol010, QDInfoClass[] O10OO0)
我的代码如下:
QDINFOS[i].happentime := TXSDateTime.Create;
QDINFOS[i].happentime := DateTimeToXSDateTime(FieldByName('rq').AsDateTime);谁能知道,这是什么原因??

解决方案 »

  1.   

    1. 重新引用一下WSDL试试
    2. 比较一下正常使用的用户与不能正常使用的用户操作系统的时间格式设置
      

  2.   

    重載一下WSDL,再檢查一下時間格式...
      

  3.   

    WebService一般是传递XML数据包,把请求包抓出来分析一下,看生成的日期格式是否正确,就好找原因了
      

  4.   

    xml的“通用”也与java的“编译一次到处运行”一样,是一个。xml其实还是有很多细微的实现差异,如果两边的实现略微对不上,那就对不起了
      

  5.   

    嗯,6楼兄弟说的对!
    这东西调试就要进行抓包看数据!
    如果怀疑是Delphi端调用WS问题的话,就用.NET写一个WS的客户端,获取到XML REQUEST与XML_REPONSE之后,再用Delphi写一个,再获取到XML REQUEST与XML_REPONSE,二者的值做对比!光靠猜不中用!!!