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());