WebService的一些学习与问题

       最近在项目里面用到了WebService,谈一下学习体会及它的用法。

       现在项目需求是这样的:客户是做直销行业的,现在他们用着几个软件系统,我们称之为业务系统,假设为A,B,C,现在需要把这三个系统的某些功能模块独立出来,如:用户下订单→公司审核订单→生成出库单→物流发货。以前客户如果想要 查看订单进行发货操作的话,需要分别登录到A,B,C三个业务系统的后台,一一进行操作,非常不便,现在客户要求把物流发货这一块独立出来,我们称之为物流系统D,只需要这一个系统 分别管理A,B,C三个系统的订单等信息。 但是,A,B,C这三个业务系统 所在的服务器不同,数据库也不同,因此在数据交互方面如果采用 数据库里的一些技术 会非常复杂。因此想利用 WebService服务进行各个系统间的通信。

       关于WebService的一些具体用法,本文就不做介绍了,相信读者在网上可以查到很多资料。只谈一下项目中的具体应用。

       首先,在物流系统D中,建立一个WebService,在.cs中添加方法,这里我们添加一个方法insertOrder(DataSet ds,WebServiceKey key),参数是一个DataSet和一个Key,其中ds是三个系统传过来的,里面是Order的具体信息,在物流系统D中获取过来后,插入到物流的数据库中,同时返回给业务系统一个ResultID,用来标识 是否已经成功将数据 传输到物流系统中。

       其次,在各业务系统中,分别引用WebService,向物流系统中传输数据。

       要注意的几个问题:

       (1)可能出现网络不通的情况,用户的订单可能传不过来,因此,我们在用户每下一个订单的时候,都会遍历数据库中,ResultID为空的数据,如果为空,即调用WebService进行数据传输。这样,即使有一个用户因为特殊原因没有 同步过来数据,其他用户在下订单的时候,也会帮着同步数据。这样,除非网络全部瘫痪,才会导致数据传输失败。

       (2)在同步数据的时候,即使因为特殊原因,导致数据传输失败,也不能影响用户的其他操作。

       经过几天的奋斗,其功能已经实现,在本地测试良好,但在发布到服务器上时,却访问不了WebService,百思不得其解,其报错信息如下:

System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 ---> System.TypeInitializationException: “WebService”的类型初始值设定项引发异常。 ---> System.NullReferenceException: 未将对象引用设置到对象的实例。
   在 WebService..cctor()
   --- 内部异常堆栈跟踪的结尾 ---
   --- 内部异常堆栈跟踪的结尾 --

 

      根据以上信息,猜测是有些东东没有赋值,但始终找不到原因,最终找到:我们在用WebService的时候,需要一个Key,用来防止 随便一个人就能访问我们的WebService,而在服务器的数据库中,我们没有加入这个字段,导致始终返回一个空值,报了上述错误。

       继续关注系统的运行情况,以后有什么学习心得继续分享给大家。

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值