如何使用ASP.Net Web 的会话状态-创新互联

这篇文章运用简单易懂的例子给大家介绍如何使用ASP.Net Web 的会话状态,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

10年积累的成都做网站、网站制作、成都外贸网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站策划后付款的网站建设流程,更有行唐免费网站建设让你可以放心的选择与我们合作。

  在web服务中要用到ASP.NET中的会话对象,有2件事情需要做。

  1.WebService 类需要继承System.Web.Services.WebService类

  2.WebMethod中的EnableSession属性值应该设置为true

如何使用ASP.Net Web 的会话状态

  来看我们CalculatorWebService类,我们可以看到,它已经继承System.Web.Services.WebService类。但是,我们需要EnableSession属性值设置为true。

  本文中,我们将试试在使用一个如下所示的GridView中的会话对象来展示最近的计算结果.

如何使用ASP.Net Web 的会话状态

  为了达成这个目的,首先要想下面这样,修改CalculatorWebService类的Add方法.

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

如何使用ASP.Net Web 的会话状态

  然后再引入另外一个公共方法来返回所有的计算结果. 要使用WebMethod特性来修饰这个方法,并且将EnableSession属性设置为true.

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

如何使用ASP.Net Web 的会话状态

  现在就可以构建我们的解决方案了,并能在浏览器中查看到我们的Web服务.

如何使用ASP.Net Web 的会话状态

  Web服务会列出两个方法——Add和GetCalculations.

如何使用ASP.Net Web 的会话状态

  点击Add方法。让我们输入两个数字,比如20和30,然后点击Invoke按钮,我们会得到50这个结果.

如何使用ASP.Net Web 的会话状态

如何使用ASP.Net Web 的会话状态

  让我们来做另外一次计算,比如30和70。然后点击Invoke按钮,我们将会得到结果为100.

如何使用ASP.Net Web 的会话状态

如何使用ASP.Net Web 的会话状态

  现在让我们回头来测试一下我们的GetCalculation方法。然后点击Invoke方法,现在回展示出我们之前所做的所有计算。它们会以一个字符串数组的形式返回.

如何使用ASP.Net Web 的会话状态

  如此我们的Web服务就这样按照预期运作了。现在让我们来试试在我们的Web应用程序中使用这些方法。为此,在 Webform1.aspx 中, 让我们往其中拽一个GridView控件进去.


    
        
        
    

如何使用ASP.Net Web 的会话状态

  在文件修改之后的代码之前,我们需要更新一下代理类。为此,在CalculatorService并选择Update Service Reference.

如何使用ASP.Net Web 的会话状态

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

gvCalculations.DataSource = client.GetCalculations();
            gvCalculations.DataBind();

            gvCalculations.HeaderRow.Cells[0].Text = "Recent Calculations";

如何使用ASP.Net Web 的会话状态

  构建我们的解决方案,并在浏览器中查看这个web窗口.

如何使用ASP.Net Web 的会话状态

  让我们继续加入两个数字,比如20和30. 而我们会看到虽然我们已经执行了一次计算, You have not performed any calculations 这样的消息还是将会显示出来.

如何使用ASP.Net Web 的会话状态

  这基本上是因为web应用程序并没有像Web服务发送相同的SessionId。为此,将web.config文件中的allowCookie设置成true.

如何使用ASP.Net Web 的会话状态

  现在我们再来运行这个web窗口并添加一些数字。现在我们就可以看到它按照预期运行了.

如何使用ASP.Net Web 的会话状态

  因此,这下面有几点要深入思考:

  • 如果Web服务被修改了,客户端应用程序的代理类就要被更新. 为此,在Service Reference夹下面的服务上点击右键,并选择Update Service Reference项.

  • 将allowCookies属性设置成true,以便让客户端应用程序接受从ASMX Web服务返回的cookie,并将其复制到未来所有项Web 服务发起的请求中去. 这就确保了客户端和Web服务之间是维护的同一个Session.

关于如何使用ASP.Net Web 的会话状态就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文标题:如何使用ASP.Net Web 的会话状态-创新互联
本文URL:http://myzitong.com/article/dgssoi.html