程序集(CLR)调用web service出现"在执行用户定义历城或聚合期间出现.net framework错误,索引(从零开始必须大于或等于零,且小于参数列表的大小)"

    代码写好了,各方面的准备工作都做好啦,在程序中调用已经成功了,但是在部署程序集的时候,却出现了这个问题。


    问题:

          


    看到这个问题,我第一想到的就是我的sql语句,又是参数又是索引的,经过我的反复检查,没有问题, 然后我觉得是触发器、存储过程等的参数传的不对,但是也是不对。


   解决方法:


    我们在写代码调用web service的时候,会生成俩个dll文件,其中一个是主文件,也就是你的主要的逻辑处理过程,另一个是对你主要逻辑的dll的序列化文件。如下所示:


      


    我们看到第二个是.XmlSerializers.dll,他是干什么的呢?

     

    Sgen.exe是Xml序列化程序生成器工具,他会为指定程序集中的类型创建一个xml序列化程序集,以改进xmlserializer在序列化和反序列化指定类型的对象的启动性能。他还可以改进Xml web services代理与服务器通信的客户端的性能


   当我们不使用xml序列化生成器时,xmlserializer在应用程序每次运行的时候,会为每一个类型生成序列化代码和一个序列化程序集。


   在我部署主要逻辑的dll的时候,里面有代码是需要调用利用关键字client调用接口的,这时候就需要将这个.xmlserializer.dll也添加到sql server的程序集中,这样在执行这句话的时候,就会出现程序集调用程序集。


   说到这里,大家肯定想到了json了,都是序列化反序列化。


  


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值