国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

WEB SERVICES狀態(tài)管理

2024-07-21 02:24:58
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
web services狀態(tài)管理

在默認(rèn)情況下,.net下的web services是無(wú)狀態(tài)的.不過(guò)可以用asp.net提供的狀態(tài)管理
那就是session和application.這使得web services下?tīng)顟B(tài)管理變得簡(jiǎn)單了,只需使用webmethod屬性的enablesession子屬性就可[webmethod(enablesession=true)]

服務(wù)端代碼如下:
[webmethod(enablesession= true)]
public client getclientstate()
{
cstate = (client)session["clientstate"];
if (cstate == null)
{
cstate = new client();
session["clientstate"] = cstate;
}

return cstate;
}
[webmethod(enablesession = true)]
public void click()
{
client c = this.getclientstate();
c.requsest++;

}

}
public class client
{
public int requsest;
}


先創(chuàng)建一個(gè)client類,用于表示客戶端連接的次數(shù),getclientstate()方法用于返回當(dāng)前用戶的狀態(tài).
客戶端代碼如下:
partial class form1 : form
{
webstate.service ws ;
webstate.client c;
public form1()
{
initializecomponent();
ws = new testwebstate.webstate.service();
ws.cookiecontainer = new system.net.cookiecontainer();
//設(shè)置cookie容器,以便代理對(duì)象能正確使用cookie來(lái)提供狀態(tài)信息
}

private void button1_click(object sender, eventargs e)
{
ws.click();//每點(diǎn)擊一次,當(dāng)前用戶的client state的request就++
c = ws.getclientstate();//獲取狀態(tài)信息
messagebox.show("you have click" + c.requsest + "times");
}
}
以上的是seesion的狀態(tài)管理,下面介紹application.
服務(wù)端代碼如下:
[webservicebinding(conformanceclaims = wsiclaims.bp10, emitconformanceclaims = true)]
public class service : system.web.services.webservice
{
arraylist clist;

[webmethod]
public string gethistory()
{
stringbuilder xbuider = new stringbuilder();//要添加using system.text;
clist = (arraylist)application["client"];
if (clist == null)
{
clist = new arraylist();
application["client"] = clist;
}
foreach (client c in clist)
{
xbuider.append(c.name + "" + c.request +"" + "/r/n");

}
return xbuider.tostring();

}
[webmethod]
public void click(ref client c)//這里用的是傳遞對(duì)象的引用
{
clist = (arraylist)application["client"];
if (clist == null)
{
clist = new arraylist();
application["client"] = clist;
}
clist.add(c);

}

}
public class client
{
public int request;
public string name;
}
客戶端代碼如下:
partial class form1 : form
{

webstate.client c;
public form1()
{
initializecomponent();
c = new testwebstate2.webstate.client();
c.name = "jisiki";

}

private void button1_click(object sender, eventargs e)
{

c.request++;
webstate.service s = new testwebstate2.webstate.service();
s.click(ref c);//這里用的是傳遞對(duì)象的引用
this.richtextbox1.text = s.gethistory();

}
}
對(duì)于web services而言,application屬性總是可用的,application返回httpapplicationstate類
的一個(gè)實(shí)例,它能存儲(chǔ)來(lái)自任何客戶端的可訪問(wèn)的"名稱/值"對(duì).





發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 云梦县| 鸡泽县| 海淀区| 深泽县| 白银市| 松原市| 江城| 察雅县| 望城县| 虹口区| 武功县| 称多县| 神木县| 清原| 宁夏| 班玛县| 西宁市| 吉木萨尔县| 新平| 铜梁县| 莱芜市| 霍林郭勒市| 常宁市| 偏关县| 德格县| 凌海市| 漳州市| 河间市| 革吉县| 灯塔市| 二连浩特市| 仲巴县| 蛟河市| 泽州县| 微山县| 乐安县| 水富县| 巴彦县| 永兴县| 尖扎县| 陕西省|