学习ASP.NET-初探Application状态

原创 2003年12月22日 18:20:00

学习ASP.NET-初探Application状态
nickcheng

  大家都知道在ASP.NET中,浏览器和Web服务器之间的连接是所谓的“无状态连接”。整个连接过程如下:

1、连接到服务器
2、告诉服务器访问者希望访问的内容
3、服务器返回访问者需要的内容
4、和服务器断开连接,同时丢失所有的用户信息

  正是这样,我们才会用到Application、Cookie、Session这些东西来达到保存特定的用户信息的目的,在本文中我们要谈的是Application。

  Application的原理是在服务器端建立一个状态变量,来存储所需的信息。要注意的是,首先,这个状态变量是建立在内存中的,其次是这个状态变量是可以被网站的所有页面访问的。这就意味着它只能存储一些要公布的信息,而不能存储一些比较个人的信息了!

下面看一个例子:

//test1.aspx
<%@ Page Language="C#"%>
<html>
  <body>
    <%Application["CompanyTelephone"]="123456789";%>
    <b>Application state changed successfully</b>
  </body>
</html>

----------------------------------------------------------

//test2.aspx
<%@ Page Language="C#"%>
<html>
  <body>
    <b>Company Telephone =
    <%
      Response.Write(Application["CompanyTelephone"]);
    %>
    </b>
  </body>
</html>

p.s. 以上是两个文件,要分开建立。

  在浏览器中调用test1.aspx文件,你会看到浏览器中显示:

Application state changed successfully

  这意味着我们成功地建立了一个Application状态。然后,再调用test2.aspx文件,这时就可以看到我们要的结果了:

Company Telephone = 123456789

  以上看到的是使用Application状态的一般情况。那大家有没有想过其它的情况?比如说当你成功的建立了Application状态以后(test1.aspx),服务器突然断电或者被重新启动了。

  这样问题就来了。如果真的发生了上述的情况,那么我们再运行test2.aspx后就不会看到我们要的结果了。所以为了避免上述的情况发生,我们应该在启动网站的时候,就配置应用程序状态。在此我们就要使用global.asax文件。

//global.asax
<script language="c#" runat="server">
void Application_OnStart()
{
  Application["CompanyTelephone"]="123456789";
}
</script>

  建立如上文件以后,将它放在Web应用程序的根文件夹中。这样一来,当Web应用程序启动的时候,ASP.NET会自己寻找global.asax文件。如果找到了,就再在其中寻找Application_OnStart()函数。如果这个函数存在,则运行其中的代码。

  好了,这样一来,即使我们没有运行test1.aspx,test2.aspx还是会得到我们所要的结果的!

 

本文参考了WROX出版的“ASP.NET 1.0入门经典——C#编程篇”

ASP.NET学习:初探Application状态

大家都知道在ASP.NET中,浏览器和Web服务器之间的连接是所谓的“无状态连接”。整个连接过程如下:   1、连接到服务器   2、告诉服务器访问者希望访问的内容   3、服务器返回访问者需要...
  • lllljz
  • lllljz
  • 2013年01月22日 17:33
  • 463

Asp.net-代码学习:DataCache

using System;using System.Web;using System.Web.Caching;using System.Collections;namespace WebApplica...
  • hulsq
  • hulsq
  • 2006年08月17日 14:41
  • 1372

如何用PowerShell查看Application Pool Name对应的Service或者Web Application?

很多IT Administrator在管理SharePoint的时候,都会困扰一个问题,就是无论创建哪个Service都会关联IIS的Application Pool用来启动进程,但是一旦Servi...
  • ShelleyLiu0415
  • ShelleyLiu0415
  • 2015年10月28日 14:16
  • 1103

Android自动化测试初探

本文内容:Android自动化测试框架初探 版权声明:本文为原创文章,未经允许不得转载 博客地址:http://blog.csdn.net/kevindgk 初步了解 什么是...
  • KevinDGK
  • KevinDGK
  • 2016年11月21日 11:18
  • 2242

Application整个运行当中需要用到的变量以及监听Activity的活动状态

创建一个类继承Application ,在启动应用的时候会先执行Application里的onCreate()方法,再执行Activity里的onCreate()方法。当Activity销毁的时候A...
  • sinat_35541927
  • sinat_35541927
  • 2016年08月30日 17:47
  • 362

三种状态对象的使用及区别(Application,Session,Cookie)

Application状态对象 Application 对象是HttpApplication 类的实例,将在客户端第一期从某个特定的ASP.NET应用程序虚拟目录中请求任何URL 资源时...
  • loveyaqin1990
  • loveyaqin1990
  • 2014年12月11日 10:19
  • 670

Asp.net-工具类

(1).汉字转拼音    实现思想:微软封装有语言包,用的是后需要引入。    代码实现: /// 拼音字符串 public static string GetPinYins(stri...
  • LABLENET
  • LABLENET
  • 2015年08月02日 20:55
  • 653

大数据初探

一、什么是大数据 5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(价值)、Veracity(真实性)。 应用:发现隐藏事物、商品相似性推荐、...
  • shuke1991
  • shuke1991
  • 2016年05月18日 19:00
  • 222

Application启动过程初探

Application的启动过程
  • ouxie
  • ouxie
  • 2017年02月14日 18:45
  • 441

Sipdroid源码初探(二):监听来电,通话建立流程

sipdroid的通话建立过程
  • qq_15650553
  • qq_15650553
  • 2016年02月16日 09:23
  • 765
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:学习ASP.NET-初探Application状态
举报原因:
原因补充:

(最多只允许输入30个字)