.NET WEB服务专题
Web服务:
1.介绍WEB服务在分布式应用程序中的用途以及地位
2.介绍WSDL\SOAP\UDDI\XML在WEB服务中的作用
3.举例演示Visual Studio 2003创建WEB服务的步骤
4.举例说明如何在.NET应用程序使用WEB
5.修改代理类的构造函数,传递web服务的URL
6.介绍wsdl.exe的使用方法,演示如何使用wsdl.exe生成代理类
7.使用MessageName属性为方法或属性名创建别名,常用来唯一标识多态方法
代码如下:
using System.Web.Services;
public class Simple:WebService
{
[WebMethod]
public int Add(int a, int b)
{
return a+b;
}
[WebMethod(MessageName="Add2")]
public int Add(int a, int b, int c)
{
return a+b+c;
}
}
8.为Webservice启用会话状态(EnableSession)
示例代码如下:
WEB服务代码:
using System.Web.Services;
public class SessionStateExample : WebService
{
[WebMethod(EnableSession=true)]
public void SetSession(string key, string item)
{
Session[key] = item;
}
[WebMethod(EnableSession=true)]
public string GetSession(string key)
{
if(Session[key]!=null)
return Session[key].ToString();
else
return "null";
}
}
客户端代码如下:
class ClassClient
{
[STAThread]
static void Main(string[] args)
{
SessionStateExample sse=new SessionStateExample();
CookieContainer cc=new CookieContainer();
sse.CookieContainer=cc;
sse.SetSession("name","john");
Console.WriteLine(sse.GetSession("name"));
Console.ReadLine();
}
}
注意事项:
(1)代理需要显式支持HTTP cookie,可通过指定CookieContainer实现
(2)cookie仅在代理生存期内有效
9.在WEB服务中使用数据高速缓存
using System.Web.Services;
using System.Data;
using System.Data.SqlClient;
using System.Web.Caching;
using System.Web;
public class DataCachingExample : WebService
{
[WebMethod]
public DataSet GetDataSet(string column)
{
Cache AppCache;
AppCache = HttpContext.Current.Cache;
if (AppCache[column] == null)
AppCache[column] = LoadDataSet(column);
return (DataSet)AppCache[column];
}
private DataSet LoadDataSet(string column)
{
SqlConnection myConnection;
SqlDataAdapter myCommand;
DataSet products;
myConnection = new SqlConnection("server=.;database=pubs;uid=sa;pwd=;");
myCommand = new SqlDataAdapter("select " + column + " from Authors", myConnection);
products = new DataSet();
myCommand.Fill(products, "products");
return products;
}
}
10.使用TransactionOption启用自动事务,以银行转帐为例
示例代码:
public class Bank : WebService {
[WebMethod(TransactionOption=TransactionOption.RequiresNew) ]
public void Transfer(long Amount, long AcctNumberTo, long AcctNumberFrom)
{
}
}
11.WEB服务和.RET Remoting技术的异同和应用范围
12.WEB服务和COM+的综合应用
13.使用WEB服务创建一个三层结构的应用程序