• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
鱼要的是海洋,鸟要的是天空,我要的是自由!
平凡的人不平凡的人生
博客园    首页    新随笔    联系   管理    订阅  订阅

.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服务创建一个三层结构的应用程序

posted @ 2007-01-10 00:54  伊凡  阅读(275)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3