最近发现在.NET平台下使用Web服务还是很简单的。
下面举个在.NET平台下创建Web服务的简单例子。首先用Visul Studio .Net创建一个C# 项目Asp.Net Web服务程序,源代码如下:
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Web; using System.Web.Services; namespace author { /// <summary> /// Service1 的摘要说明。 /// </summary> public class Service1 : System.Web.Services.WebService { public Service1() { //CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的 InitializeComponent(); } #region 组件设计器生成的代码 //Web 服务设计器所必需的 private IContainer components = null; /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { } /// <summary> /// 清理所有正在使用的资源。 /// </summary> protected override void Dispose( bool disposing ) { if(disposing && components != null) { components.Dispose(); } base.Dispose(disposing); } #endregion // WEB 服务示例 // HelloWorld() 示例服务返回字符串 Hello World // 若要生成,请取消注释下列行,然后保存并生成项目 // 若要测试此 Web 服务,请按 F5 键 // [WebMethod] // public string HelloWorld() //{ // return "Hello World!keleyi.com"; //} } }View Code
这些代码都是系统自动生成的,从这里可以看到,普通的方法添加了WebMethod属性后就成了Web方法了。下面给这段代码添加一个访问SQL Server数据库的方法,代码如下:
[WebMethod] public DataSet DataVisit(string id) { string mySelectQuery = "Select au_id, au_fname, au_lname From authors where au_id != '"+id+"'"; string myConn = @"server=localhost; uid=sa; database=pubs"; SqlConnection myConnection = new SqlConnection(myConn); SqlCommand myCmd = new SqlCommand(mySelectQuery, myConnection); myConnection.Open(); SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = myCmd; DataSet myDs = new DataSet(); adapter.Fill(myDs, "author_name"); myConnection.Close(); return myDs; }View Code
这样就创建了一个Web服务了,在Web应用程序里就可以通过添加“Web引用”来使用这个服务了。