WebService的创建与调用

2018-06-22 07:46:45来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

 写在前面: 你要相信,只要你顺其自然地看完,肯定能帮到你的忙

 

开发环境 VS 2015 Enterpise 英文版

 

背景:想要调用一个WebService,肯定是因为这个WebService里面有你想要的数据或方法,你才会去调用它

调用分三种,第一种:就是我下面要具体讲的Demo,本机上的一个VS项目去调本机上另一个VS项目里的WebService(里面的方法,数据,...);

               第二种:就是调Internert上的开放WebService(有收费和不收费的),等等一笔带过;

               第三种:与前面两个都不同,比如说我想调用的WebService不在我本机上,别人也没有发布在Internet上,而是在别人的服务器上,别急,最后会聊;

只想知道如何调用的同学,我建议也要把第一步如何创建瞥下(即使你调用的是别人写好的WebService),但是知其然并知其所以然不是更好吗

 

1.创建:假设我们(在WebService里)创建一个 返回"Hello World"字符串 的方法去给别人调用,别问我为什么举这么low的Demo,往下看你就知道了

创建一个项目,用来提供WebService服务

有ASP.NET 空 Web应用程序 的同学选空的就行

 

 这里创建一个Web服务,文件名是以asmx结尾的,等等我们想去创建给他人调用的方法,就写在这个里面哦

 下面是系统默认生成的

哈哈,现在知道我为什么举这么Low的Demo了吧,我本打算写别的,不过不忘初心吧,Hello Word!

 

哦,对了,忘说了,有没有注意到方法上面的这个帽子呢,好吧,我自己习惯喊它帽子,只有让方法头上盖上这顶帽子,别人才可以调用该方法哦(这个虽然是系统默认生成的,但是以后自己

开发其它方法时,如果想被其他人调用的到的话,别忘记加上去哦)

2.发布      好吧,重点才开始,只想知道如何调用的同学可以认真看了,老夫先习惯性的Ctrl + Shift + B一波

右击这个asmx文件所属的项目(类库),点击Publish(发布)

给要发布的类库起个名字,这仅仅是个名字而已,并且看不见,摸不着,并不是你理解的发布后生成的文件会存在这个TheProfileToStorePublish里,这只是个不存在的名字

好吧,这不重要,我的意思只想表示,忘了这个TheProfileToStorePublish

 

别看下面要填的这么多,这里选择 文件系统 后 就简便很多了

 点击发布后,WebService项目会编译生成文件,存在你刚才取的叫阿猫阿狗文件夹里,所以TheProfileToStorePublish不重要,阿猫阿狗才重要

 

点进去找到了生成后的文件们,还有那个最重要的acmx文件,这个文件最终都会出场的哦,别急 往下看

 

2.5   到这你可能觉得发布成功了,另一个VS里面的项目就可以调用了,但是你想想,怎么才能让另一个VS项目里面能调用到这些文件呢

其实只要把这个发布后生成的文件部署到IIS就可以了

我习惯自己手动建应用程序池,可能大部分人都是直接新建网站,然后调用自动生成的与网站同名的应用程序池

可我就喜欢自己先建个应用程序池,然后新建网站的时候,应用程序池选择我自己建的,不要问我为什么

 

 

应用程序池建好后 再建网站

别急,还没完呢,把WebService给别人调用的原理,就是拿一个Url给别人的VS里,怎么拿这个Url呢,这也是我们要部署IIS的真正原因

 

Boom,是不是有人跟我一样报错了,别慌,看看错误提示的什么,我们照做就可以了

一开始就不报错的同学靠边站,你人品挺好的,这个时候我们再回头点击Url,发现出现以下页面,其中有包含我们要调用方法的asmx文件,恭喜你,发布完全结束!

 

3.调用

现在我们在另一个VS项目里,你想在这个VS项目里调用之前发布过的WebService

我点

我再点

 

注意:这个路径 必须是 网站Url后面加上/你的asmx文件(我们在第一个项目建的Web服务),不然找不到的

 

 

 

 

如果你电脑联网的话,这个地址可以调Internet上有的,比如天气预报发布的WebService的最终的Url,可以搜下拿来用

 

 

 正常情况下,一个简单的WebService从创建->发布->调用算是完成了

我们再来聊聊一开始说的,第三种情况

其实,第一种并不满足实际生活中的开发,不过也不难,首先我们需要知道我们要调的那个人的asmx叫什么,里面的方法名是什么,需要传什么参数

我们F12进去看下

 

 

 我们会发现 因为调用本地IIS的原因,调用的Url是写死的,我们真正调别人机器上的WebService时,可以通过WebConfig里面设置

<appsettings>

<add key="WebServiceUrl" value="xxxx">

</appsettings>

然后代码里var webServiceUrl = ConfigurationManager.AppSettings["WebServiceUrl"]

ws.Url = webServiceUrl

最终代码合到你要调用那个人的服务器上时,WebConfig里配那个人的IIS地址就行

我只能说,通过配WebConfig可能并不是个很好的方法,我自己也很少用,但SharePoint的东西放在这里又不适合,所以目前推荐可以用这种

 

写在最后:如果觉得有讲得不明白的地方,欢迎联系我,邮箱地址:jiyisharp@foxmail.com

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Session如何保存在sql数据库中

下一篇:SQL Server-基础-经典SQL语句