濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > ASP.NET如何使用web服務(wù)的會(huì)話狀態(tài)

ASP.NET如何使用web服務(wù)的會(huì)話狀態(tài)

熱門標(biāo)簽:安陸市地圖標(biāo)注app 寧德防封版電銷卡 云南外呼系統(tǒng)代理 辦公用地圖標(biāo)注網(wǎng)點(diǎn)怎么操作 上海市三維地圖標(biāo)注 西寧電銷外呼系統(tǒng)公司 海東防封電銷卡 南昌自動(dòng)外呼系統(tǒng)線路 聊城智能電銷機(jī)器人電話

在web服務(wù)中要用到ASP.NET中的會(huì)話對(duì)象,有2件事情需要做。

  1.WebService 類需要繼承System.Web.Services.WebService類

  2.WebMethod中的EnableSession屬性值應(yīng)該設(shè)置為true

  來(lái)看我們CalculatorWebService類,我們可以看到,它已經(jīng)繼承System.Web.Services.WebService類。但是,我們需要EnableSession屬性值設(shè)置為true。

  本文中,我們將試試在使用一個(gè)如下所示的GridView中的會(huì)話對(duì)象來(lái)展示最近的計(jì)算結(jié)果.

  為了達(dá)成這個(gè)目的,首先要想下面這樣,修改CalculatorWebService類的Add方法.

[WebMethod(EnableSession = true)]
  public int Add(int firstNumber, int secondNumber)
  {
   Liststring> calculations;
 
   if (Session["CALCULATIONS"] == null)
   {
    calculations = new Liststring>();
   }
   else
   {
    calculations = (Liststring>)Session["CALCULATIONS"];
   }
    
   string strTransaction = firstNumber.ToString() + " + "
    + secondNumber.ToString() 
    + " = " + (firstNumber + secondNumber).ToString();
   calculations.Add(strTransaction);
   Session["CALCULATIONS"] = calculations;
 
   return firstNumber + secondNumber;
  }

  然后再引入另外一個(gè)公共方法來(lái)返回所有的計(jì)算結(jié)果. 要使用WebMethod特性來(lái)修飾這個(gè)方法,并且將EnableSession屬性設(shè)置為true.

[WebMethod(EnableSession = true)]
  public Liststring> GetCalculations()
  {
   if (Session["CALCULATIONS"] == null)
   {
    Liststring> calculations = new Liststring>();
    calculations.Add("You have not performed any calculations");
    return calculations;
   }
   else
   {
    return (Liststring>)Session["CALCULATIONS"];
   }
  }


  現(xiàn)在就可以構(gòu)建我們的解決方案了,并能在瀏覽器中查看到我們的Web服務(wù).

  Web服務(wù)會(huì)列出兩個(gè)方法——Add和GetCalculations.

  點(diǎn)擊Add方法。讓我們輸入兩個(gè)數(shù)字,比如20和30,然后點(diǎn)擊Invoke按鈕,我們會(huì)得到50這個(gè)結(jié)果.

  讓我們來(lái)做另外一次計(jì)算,比如30和70。然后點(diǎn)擊Invoke按鈕,我們將會(huì)得到結(jié)果為100.

  現(xiàn)在讓我們回頭來(lái)測(cè)試一下我們的GetCalculation方法。然后點(diǎn)擊Invoke方法,現(xiàn)在回展示出我們之前所做的所有計(jì)算。它們會(huì)以一個(gè)字符串?dāng)?shù)組的形式返回.

  如此我們的Web服務(wù)就這樣按照預(yù)期運(yùn)作了?,F(xiàn)在讓我們來(lái)試試在我們的Web應(yīng)用程序中使用這些方法。為此,在 Webform1.aspx 中, 讓我們往其中拽一個(gè)GridView控件進(jìn)去.

tr>
 td>
  asp:GridView ID="gvCalculations" runat="server">
  /asp:GridView>
 /td>
/tr>

  在文件修改之后的代碼之前,我們需要更新一下代理類。為此,在CalculatorService并選擇Update Service Reference.

  此后,在btnAdd_Click事件代碼段之中, 加入如下幾行代碼.

gvCalculations.DataSource = client.GetCalculations();
   gvCalculations.DataBind();
 
   gvCalculations.HeaderRow.Cells[0].Text = "Recent Calculations";

  構(gòu)建我們的解決方案,并在瀏覽器中查看這個(gè)web窗口.

  讓我們繼續(xù)加入兩個(gè)數(shù)字,比如20和30. 而我們會(huì)看到雖然我們已經(jīng)執(zhí)行了一次計(jì)算, You have not performed any calculations 這樣的消息還是將會(huì)顯示出來(lái).

  這基本上是因?yàn)閣eb應(yīng)用程序并沒(méi)有像Web服務(wù)發(fā)送相同的SessionId。為此,將web.config文件中的allowCookie設(shè)置成true.

  現(xiàn)在我們?cè)賮?lái)運(yùn)行這個(gè)web窗口并添加一些數(shù)字?,F(xiàn)在我們就可以看到它按照預(yù)期運(yùn)行了.

  因此,這下面有幾點(diǎn)要深入思考:

如果Web服務(wù)被修改了,客戶端應(yīng)用程序的代理類就要被更新. 為此,在Service Reference夾下面的服務(wù)上點(diǎn)擊右鍵,并選擇Update Service Reference項(xiàng).

將allowCookies屬性設(shè)置成true,以便讓客戶端應(yīng)用程序接受從ASMX Web服務(wù)返回的cookie,并將其復(fù)制到未來(lái)所有項(xiàng)Web 服務(wù)發(fā)起的請(qǐng)求中去. 這就確保了客戶端和Web服務(wù)之間是維護(hù)的同一個(gè)Session。

如何使用web服務(wù)的會(huì)話狀態(tài),相信通過(guò)這篇文章大家應(yīng)該有所了解了吧。

您可能感興趣的文章:
  • ASP.NET+Web服務(wù)實(shí)現(xiàn)軟件共享
  • asp.net配置會(huì)話狀態(tài)Session實(shí)現(xiàn)代碼
  • ASP.NET Session對(duì)象保持會(huì)話使用說(shuō)明
  • ASP.NET自定義Web服務(wù)器控件之Button控件
  • ASP.NETWeb服務(wù)器驗(yàn)證控件如何使用
  • ASP.NET如何使用web服務(wù)的會(huì)話狀態(tài)

標(biāo)簽:贛州 洛陽(yáng) 衢州 南寧 崇左 青海 汕尾

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP.NET如何使用web服務(wù)的會(huì)話狀態(tài)》,本文關(guān)鍵詞  ASP.NET,如何,使用,web,服務(wù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ASP.NET如何使用web服務(wù)的會(huì)話狀態(tài)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于ASP.NET如何使用web服務(wù)的會(huì)話狀態(tài)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    乌拉特中旗| 安图县| 万宁市| 沧州市| 宁都县| 渭南市| 普定县| 桂东县| 清新县| 广丰县| 建平县| 读书| 岳池县| 资溪县| 金阳县| 泰州市| 千阳县| 吉林省| 乃东县| 南京市| 清丰县| 广元市| 泾源县| 桐城市| 沭阳县| 嘉鱼县| 绵竹市| 辽源市| 张家港市| 惠东县| 闽清县| 通州市| 闸北区| 治多县| 凤庆县| 大英县| 望奎县| 隆子县| 固安县| 习水县| 奉化市|