C#中调用WebService服务

最近在C#项目中调用WebService服务,使用最常用的直接添加服务引用的方式,此贴记录调试过程中遇到的问题。
在项目中直接添加引用(需要WebService服务地址,修改命名空间):
C#中调用WebService服务


在C#中调用WebService的地方,使用try...catch,将出现的异常信息输出至日志中查看。
遇到过的问题:
1,异常:反射"arg0"时出错,仔细看引用的代码定义,发现有两个接口中都有arg0参数,并且他们的参数类型不一样,这里的Namespace都是空的
[System.ServiceModel.MessageBodyMemberAttribute(Namespace= "", Order=0)]
        public string arg0;
解决办法:将其中一个改名,或者增加Namespace定义。
PS:测试中有个函数第一个参数,WebService端为空值,可能是后期影响,未深入研究。

2,异常:在 ServiceModel 客户端配置部分中,找不到引用协定的默认终结点元素
这是需要修改config文件
将库config文件中的下面字段,复制至主程序的config文件中(编译成功后,可执行程序命名的config文件也需要)
                bindingConfiguration="SmsServiceSoap" contract="SmsService.SmsServiceSoap"
                name="SmsServiceSoap" />
       
   

posted @ 2019-05-17 16:58  strongbug1  阅读(72)  评论(0编辑  收藏  举报