最近因为要开发项目组里的Web模块,开始学习.NET平台,发现在.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";
//}
}
}
这些代码都是系统自动生成的,从这里可以看到,普通的方法添加了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;
}
这样就创建了一个Web服务了,在Web应用程序里就可以通过添加“Web引用”来使用这个服务了。
利用这个方法可以轻松地创建一个三层模式。