Net环境开发WebService流程记录

右键项目,【添加】——【新建项】,弹出的对话框中,选择“Web服务(ASMX)”,填写新建服务的名称,点击【添加】按钮,如下图:



 
2、 步骤1之后,会在项目中生成代码文件,分别为*.asmx*.cs文件,在*.cs文件内实现Web Service提供的服务。*.asmx文件定义了该Web Service的配置信息,比如开发的语言,提供服务的实现类,比如:

<%@WebServiceLanguage="C#"CodeBehind="AttachmentWS.cs"Class="SmartTMP.AttachmentWS"%>

3、Web Service实现类需要继承System.Web.Services.WebService

4、在服务内,实现所提供的服务功能,比如添加附件服务。

添加方法,以[WebMethod]注解,如下图所示:



 

         对于WebMethod的属性挺多,这里使用了Description属性,描述该方法提供的功能,类似注释。

5、服务编写完毕后,可单独发布于IIS服务器,也可以随着工程部署,这里按照随着工程部署的方式,启动整个工程后,WebService服务就可以使用了。

6、可使用以下地址访问,检验是否发布成功。

http://ip:port/Attachment.asmx或者http://ip:port/Attachment.asmx?wsdl



 

其中,上图列举了该服务可向外部提供的服务方法。下图提供是wsdl文件,包括调用服务需要传递的参数,参数类型,返回值等信息。



 7、服务发布后,在工程中通过【添加服务引用】,即可将该服务添加到工程中了,如下图所示:


 8、添加完成后,可在项目中使用服务提供的功能了。

9、若需要使用SoapHeader验证以确保服务调用的安全性,则可以新建继承SoapHeader的服务类,在服务类里,定义要验证的属性,如下图所示:



 

以上代码表明,在认证服务调用的用户时,需要传递用户的ID,用户名,用户密码。

10、在需要用户验证的服务中,声明步骤9中定义的用户认证实例变量,并在需要认证的方法上,添加注释,表明该方法需要用户认证。如下图:



 11、上图代码中,是在AuthenLoginUser(soapHeader);处对调用服务的用户做认证,认证方式在AuthenLoginUser自定义,使用者可根据验证方式,合理实现该部分功能即可。如下图:



 
12、编写完成后,随着工程发布,通过步骤7的方式添加服务引用后,即可使用。

13、简单的调用方式如下:

//定义WebService服务调用客户端

SmartTMP.AttachmentWS.AttachmentWSSoapClient ws = new SmartTMP.AttachmentWS.AttachmentWSSoapClient();
//
定义用户认证实例

SmartTMP.AttachmentWS.AuthenSoapHeader soapHeader = new SmartTMP.AttachmentWS.AuthenSoapHeader();
//
用户认证,传递认证所需的信息,对应步骤9

soapHeader.CGuid = "xxxxxxx";
soapHeader.UserName = "xxxxxxx";
soapHeader.PassWord = "0000";
//
通过客户端调用webService,需要将用户认证的实例soapHeader 作为参数传递
string strAdd = ws.AddFile(soapHeader, "D:\\a.jpg", "xxxxxx", "xxxxxxx");


以上,只是简单的Web Service服务的定义,调用的过程,随学随用,能力所限,只是技术环节的皮毛,望各位不吝指正,共同学习,谢谢。

 

 

 

 

猜你喜欢

转载自jiage17.iteye.com/blog/2412964
今日推荐