加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

webservice使用总结

发布时间:2020-12-17 02:02:47 所属栏目:安全 来源:网络整理
导读:这几天使用WebService费了老半天劲,走了很多弯路,现把一些总结记下来,以备以后查询。 ? 1、 WebService调用方法 :在reference处右击然后再选择“Add Service reference”,(呵呵,地球人都知道),关键是代码处怎么调用,如果当前项目是Web Application或we

这几天使用WebService费了老半天劲,走了很多弯路,现把一些总结记下来,以备以后查询。

?

1、WebService调用方法:在reference处右击然后再选择“Add Service reference”,(呵呵,地球人都知道),关键是代码处怎么调用,如果当前项目是Web Application或web site,则调用代码为创建的“Service名字.Service里面的类名”,如:

ServiceReference2.WebService1 service = new ServiceReference2.WebService1();
???service.HelloWorld();

如果当前项目是App Application中ClassLibrary,则调用代码为创建的“Service名字.Service里面类的SoapClient类名”(注:SoapClient类是你在添加Web引用时,当前项目自动为你生成的),代码举例如下:

???ServiceReference2.WebService1SoapClient service?=new ServiceReference2.WebService1SoapClient ();
???service .HelloWorld();

2、Web Service相关配置问题,当我们在引用WebService时,系统会自己为我们生成相关配置信息,如web Service的url,通信协议格式,但需要注意的,如果我们引用WebService的项目是一个ClassLibrary项目,则我们需要在将ClassLibrary项目的app.config的system.serviceModel节内容,复制到调用ClassLibrary项目的App Application或Web Application项目的配置文件中,否则运行时会报找不到“endpoint”节错误,这实际上跟数据库连接配置的原理是一样的。数据访问层在程序发布时,只会去读取整个运行项目的.config文件,不会再读取数据访问层项目的config文件。

3、动态更改WebService的url问题,其实只要在.config文件中更改url就可以了。但问题是我们在开发时,其实需要WebService相关类SoapClient类信息来进行编码,但很可能并不知道布署时,真正WebService的url,这样SoapClient类的信息,我们在开发时就无法得到,解决办法:1、用反射的方法,网上有一些方法实现了根据 Url,类名,方法名来反射出一个类,但缺陷时,每次调用都反射,性能太差了。2、自己写一个模拟程序来暂时代替真正的WebService,在真正发布时,再根据真正的WebService的Url,重新生成SoapClient类,然后将模拟程序的替换掉(查找,替换),这样就解决了,在没有真实WebService时,如何进行开发的问题。(方法很土,但很实用)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读