1、C#的WebServiceWeb Service开发.net平台内建了对Web Service的支持,包括Web Service的构建和使用。与其它开发平台不同,使用.net平台,你不需要其他的工具或者SDK就可以完成Web Service的开发了。.net Framework本身就全面支持Web Service,包括服务器端的请求处理器和对客户端发送和接受SOAP消息的支持。下来我们就一步一步的用Microsoft Visual Studio .net 20058(后面简称VS.Net 2008)创建和使用一个简单的Web Service。2.1、用创建一个最简单的Web Service首先
2、,打开VS2005,打开文件-新建-网站,选择ASP.NET Web服务查看Service.cs代码,你会发现VS.Net 2005已经为Web Service文件建立了缺省的框架。原始代码为:view plaincopy to clipboardprint?1. usingSystem;2. usingSystem.Linq;3. usingSystem.Web;4. usingSystem.Web.Services;5. usingSystem.Web.Services.Protocols;6. usingSystem.Xml.Linq;7. WebService(Namespace=ht
3、tp:/tempuri.org/)8. WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)9. /若要允许使用ASP.NETAJAX从脚本中调用此Web服务,请取消对下行的注释。10. /System.Web.Script.Services.ScriptService11. publicclassService:System.Web.Services.WebService12. 13. publicService()14. /如果使用设计的组件,请取消注释以下行15. /InitializeComponent();16. 17.
4、WebMethod18. publicstringHelloWorld()19. 20. returnHelloWorld;21. 22. 默认工程里面已经有一个Hello World的方法了,直接运行看看效果,点击显示页面上图中的HelloWorld超链接,跳转到下一页面:点击调用按钮,就可以看到用XML格式返回的Web Service结果下图。说明我们的Web Service环境没有问题,而且还初步接触了一下最简单的Web Service。2.2、创建一个简单带有功能的Web Service上面我们宏观的了解了webservice,其实它就是个对外的接口,里面有函数可供外部客户调用(注意:
5、里面同样有客户不可调用的函数).假若我们是服务端,我们写好了个webservice,然后把它给了客户(同时我们给了他们调用规则),客户就可以在从服务端获取信息时处于一个相对透明的状态.即是客户不了解(也不需要)其过程,他们只获取数据.在代码文件里,如果我们写了一个函数后,希望此函数成为外部可调用的接口函数,我们必须在函数上面添上一行代码WebMethod(Description=函数的描述信息),如果你的函数没有这个申明,它将不能被用户引用.下来我们开始编写一个简单的Web Service 的例子。先把默认的HelloWorld方法注释掉,简单的写了求加减乘除运算的四个方法;view plai
6、ncopy to clipboardprint?1. usingSystem;2. usingSystem.Linq;3. usingSystem.Web;4. usingSystem.Web.Services;5. usingSystem.Web.Services.Protocols;6. usingSystem.Xml.Linq;7. WebService(Namespace=http:/tempuri.org/)8. WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)9. /若要允许使用ASP.NETAJAX从脚本中调用此W
7、eb服务,请取消对下行的注释。10. /System.Web.Script.Services.ScriptService11. publicclassService:System.Web.Services.WebService12. 13. publicService()14. /如果使用设计的组件,请取消注释以下行15. /InitializeComponent();16. 17. /WebMethod18. /publicstringHelloWorld()19. /20. /returnHelloWorld;21. /22. WebMethod(Description=求和的方法)23.
8、 publicdoubleaddition(doublei,doublej)24. 25. returni+j;26. 27. WebMethod(Description=求差的方法)28. publicdoublesubtract(doublei,doublej)29. 30. returni-j;31. 32. WebMethod(Description=求积的方法)33. publicdoublemultiplication(doublei,doublej)34. 35. returni*j;36. 37. WebMethod(Description=求商的方法)38. publicdo
9、ubledivision(doublei,doublej)39. 40. if(j!=0)41. returni/j;42. else43. return0;44. 45. 运行可以看到我们自己写的可以被调用的方法,如下图:同样点击addition方法,进入addition方法的调用页。在参数上面输入参数i=3,j=3,如上图,点击调用,就可以看到用XML格式返回的Web Service结果(i与j相加的结果)下图到这里,我们会发现,其实webservice并不是那么的神秘,它也不过只是个接口,对我们而言,侧重点就是是接口函数的编写.2.3、用ASP.NET调用Web Service首先,打开
10、VS2005,打开文件-新建-网站,选择ASP.NET网站。选好存储位置,语言后点击确定,进入默认页面。然后先添加Web引用,把WebService引到当前的工程里面。方法是:在资源管理器中点击右键,选择添加Web 引用,调出对话框:在URL中填入,前面写好的WebService运行后浏览器上面显示的地址(即:WebService发布后的访问地址),点击前往按钮,如上图,就会显示出所引用的WebService中可以调用的方法,然后点击添加引用,就将webservice引用到了当前的工程里面 ,如下图,解决方案中会出现引进来的WebService文件我们在这就练习调用webservice的四个方
11、法,做一个简单的调用的例子,先在网站的前台添加几个控件,代码如下:view plaincopy to clipboardprint?1. 2. 3. 4. 5. 无标题页6. 7. 8. 9. 10. 11. 12. +13. -14. *15. /16. 17. 18. 19. 20. 21. 22. 23. 然后在后台写调用的代码,调用之前和使用其它的对象一样,要先实例化,实例化的方法是localhost.Service a = new localhost.Service();然后就可以通过a来访问WebService里面提供的方法了。在这个例子里面,动态的创建了一个button控件来触发
12、WebService的调用,后台代码如下:运行后可以看到效果,如下图所示,在前面两个Textbox里面输入两个操作数,在中间的下拉列表中选择操作符,然后点击=号,将计算的结果输出到第三个Textbox里面。而整个计算并不是在本地进行的,是在Web服务端进行计算的然后将结果通过XML返还给了调用方的,所以,在运行该程序的时候,WebService程序还必须启动,否则会报无法连接远程服务器的异常,如下图:后台代码如下:view plaincopy to clipboardprint?1. usingSystem;2. usingSystem.Configuration;3. usingSystem
13、.Data;4. usingSystem.Linq;5. usingSystem.Web;6. usingSystem.Web.Security;7. usingSystem.Web.UI;8. usingSystem.Web.UI.HtmlControls;9. usingSystem.Web.UI.WebControls;10. usingSystem.Web.UI.WebControls.WebParts;11. usingSystem.Xml.Linq;12. publicpartialclass_Default:System.Web.UI.Page13. 14. protectedv
14、oidPage_Load(objectsender,EventArgse)15. 16. 17. protectedvoidButton1_Click(objectsender,EventArgse)18. 19. stringselectFlag=selectOper.Value;20. localhost.Serviceweb=newlocalhost.Service();21. if(selectFlag.Equals(+)22. 23. Result.Text=(web.addition(double.Parse(Num1.Text),double.Parse(Num2.Text).T
15、oString();24. 25. elseif(selectFlag.Equals(-)26. 27. Result.Text=(web.subtract(double.Parse(Num1.Text),double.Parse(Num2.Text).ToString();28. 29. elseif(selectFlag.Equals(*)30. 31. Result.Text=(web.multiplication(double.Parse(Num1.Text),double.Parse(Num2.Text).ToString();32. 33. elseif(selectFlag.Equals(/)34. 35. Result.Text=(web.division(double.Parse(Num1.Text),double.Parse(Num2.Text).ToString();36. 37. 38. 到此一个一个简单的WebService的开发和调用就已经完成了,在实际应用中可以根据自己的需要,写一些功能强大的,复杂的WebService,不管多么复杂,整个流程都是这样的
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2