Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)qqpublished in(发表于) 2014/7/11 9:23:27 C#教程:创建Web服务
创建Web服务创建Web服务的步骤如下所示。(1)在ASP.NET 2005中创建Web服务和创建类很相似,其过程包括声明一个Web服务和定义一个Web服务接口方法。新建一个名为MrWebService的项目,在Visual Studio 2005开发环境中,选择“文件”/“新建”/“网站”选项,弹出“新建网站”对话框,在该对话框中选择“ASP.NET Web服务”选项,并命名为“mrWebService”,如图1所示。图1 创建ASP.NET Web服务(2)单击【确定】按钮,项目创建成功,并在“解决方案资源管理器”窗口中显示一个以.cs为扩展名的文件,如图2所示和一个以.asmx为扩展名的Web服务文件,如图3所示。在Web服务文件中包含一条“@Webservice”指令。Web服务至少由一个类组成,该类可以写在同一个.asmx文件中,也可以采用“Code Behind”(代码分离)方法,并通过“@WebService”指令引入。(3)在“解决方案资源管理器”窗口中,双击“App_Code”文件夹下的Service.cs文件,进入其代码视图。Service.cs文件代码如下:图2 以.cs结尾文件图3 以.asmx结尾文件using System;using System.Web;using System.Web.Services;using System.Web.Services.Protocols;[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]public class Service : System.Web.Services.WebService{public Service () {}[WebMethod]public string HelloWorld() {return "Hello World";}}(4)在上述代码中,系统自带一个HelloWorld方法,此方法返回一个字符串。下面新建两个自定义方法:Add方法和Ascii方法,其中Add方法用来实现两数相加的功能,而Ascii方法用来实现返回字符的ASCII值功能。Add方法和Ascii方法关键代码如下:[WebMethod(Description="第一个测试函数,返回两个数的和")]public int Add(int num1, int num2){return num1 + num2;}[WebMethod(Description="第二个测试函数,返回字符ASCII")]public char Ascii(string strAscII){return Char.Parse(strAscII);}(5)设置WebMethod属性。如果某一个成员函数能被外部调用,则必须满足两个条件:第一,该成员函数为public类型;第二,该成员函数必须具有“[Webmethod]”关键字修饰,因为只有具备了“[WebMethod]”的类,才可以通过SOAP被远程访问。如果要使某方法可以被Web服务调用,在其前面加上“[WebMethod]”属性即可。例如,下面代码中的HelloWorld方法、Add方法和Ascii方法都可以使用Web服务进行调用,而sub方法不能被调用。代码如下:[WebMethod]public string HelloWorld() {return "Hello World";}[WebMethod(Description="第一个测试函数,返回两个数的和")]public int Add(int num1, int num2){return num1 + num2;}[WebMethod(Description="第二个测试函数,返回字符ASCII")]public char Ascii(string strAscII){return Char.Parse(strAscII);}public int sub(int num1,int num2){return num1 * num2;}上面所建的Web服务的运行结果如图4所示。如图4所示,由于sub方法前面没有“[WebMethod]”属性,所以Web服务中没有,它也不能被远程访问。WebMethod属性中可以指定的节及说明如表1所示。图4 WebMethod属性效果表1 WebMethod属性节
赞