ASP.NET 锁定方法

Lock 方法阻止其他用户修改存储在应用程序对象中的变量。 它确保一次只有一个客户端可以修改应用程序变量。

ASP.NET 解锁方法

Unlock 方法使其他用户可以在使用 Lock 方法锁定应用程序对象后修改存储在应用程序对象中的变量。 如果用户未显式调用 Application.Unlock 方法,则服务器会在 .asp 文件结束或者超时时解锁锁定的应用程序对象。

在下面的例子中,我们使用 lock 方法阻止多个用户一次访问变量页面计数器,然后使用 unlock 方法允许其他用户访问应用程序中的变量。

default.apsx(锁定方法)

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<body>
  <form id="form1" runat="server">
    <div>
       The page has been visited
       <asp:Label ID="myLabel" runat="server" />
       times!
    </div>
  </form>
</body>
</html>

Default.aspx.vb

Partial Class _Default
   Inherits System.Web.UI.Page
   Protected Sub Page_Load(ByVal sender As Object, _
   ByVal e As System.EventArgs) Handles Me.Load
       If Application("PageCounter") >= 10 Then
           Application.Remove("PageCounter")
       End If
       If Application("PageCounter") Is Nothing Then
       Else
           Application.Lock()
           Application.UnLock()
       End If
       myLabel.Text = Application("PageCounter")
   End Sub
End Class

default.apsx(解锁方法)

<%@ Page Language="vb" %>
<html>
  <head>
    <script runat="server">
       Sub Page_Load()
          Application.Lock()
          Application("Counter") = 1
          Application.UnLock()
          Message.Text = "Counter = " & Application("Counter")
       End Sub
    </script>
 </head>
<body>
    <asp:label id="Message" runat="server"/>
</body>
</html>

注意:页面无需锁定应用程序对象以编辑应用程序集合。
如果一个页面尝试编辑应用程序集合而无需锁定,并且在第二页也尝试编辑集合,IIS也不会发送错误,并且应用程序对象以不一致的状态结尾。

在ASP.NET 中使用 VB.NET 锁定和解锁方法

在本文中,您将了解 ASP.NET 中的 Application.Lock 和 Unlock 方法。

日期:2020-06-02 22:14:13 来源:oir作者:oir