rainxiang

莺莺燕燕翠翠红红处处融融洽洽 风风雨雨花花叶叶年年暮暮朝朝

 

WebServices开启Session

WebServices是无状态,不能通过所谓得属性来保存信息.
在做一个小功能得时候因为不知道而产生了很多无谓得错误和调试,后来经过几多调试,得出经验
通过Session来保存状态
而在WebServices中使用Session必须开启EnableSession
且客户端必须创建CookieContainer实例来进行关联
具体做法:

服务端

using System.ComponentModel;
using System.Web.Services;

namespace test
{
 /// <summary>
 /// Email 的摘要说明。
 /// </summary>
 public class test : WebService
 {
  public test()
  {
   //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(EnableSession=true)]
  public string HelloWorld()
  {
   return Session["aaa"].ToString();
  }

  public void aaa
  {
   [WebMethod(EnableSession=true)]
   set{Session["aaa"] = value;}
  }
 }
}

客户端

test t = new test.localhost.test();
t.CookieContainer = new System.Net.CookieContainer();
t.set_aaa("hello world!");
Response.Write(t.HelloWorld());

 

 

posted on 2007-03-12 16:24  rainxiang  阅读(693)  评论(0编辑  收藏  举报

导航