asp学习网: 首页 >> asp.net >> .NET之ASP Web Application入门

.NET之ASP Web Application入门

什么是 ASP.NET Application ?
ASP.NET这么定义Application:它是运行在Web应用服务器上的一个虚拟目录及其子目录
下的所有文件、页面、模块以及可执行代码的总和。比如说,一个叫做"order"的appli
cation可能就是Web服务器的一个"/order"虚拟目录。虚拟目录可以通过Internet
Services Manager设置,它可以包含任何子目录。
Web服务器上的每一个ASP.NET application 运行在一个独特的.NET运行时间应用域中,
它保证了类隔离(不会产生译文或者命名冲突)、安全盒(防止对特定机器或者网络资
源的访问)以及静态变量的隔离。
在一个Web Application的整个生存过程中,ASP.NET维护着一个HttpApplication实例池
,自动地分配这些实例中的一个以处理application接收到的每个HTTP请求。被分配的特
殊HttpApplication实例负责管理整个生命期的请求,只有当请求结束时,它才能被再使
用。这表示其中的用户代码不需用再进入。
创建Application
要创建一个ASP.NET Application,我们可以使用存在的虚拟目录,或者创建一个新的虚
拟目录。比如,在安装了包含IIS的Windows
2000服务器上,大概会有一个目录C:\InetPub\WWWRoot;我们使用Internet Services
Manager来配置IIS,在"Start
-> Programs -> Administrative Tools"下,用鼠标右键单击存在的目录,或者选择ne
w来创建一个新的虚拟目录,或者选择Properties来提升一个存在的普通目录为虚拟目录

现在看看如何触发ASP.NET application。我们可以编写一个simple.aspx文件,将它放
置到虚拟目录下,然后在浏览器中访问它。为对照方便,我们列出了使用VB、C#以及JS
cript三种语言编写的代码:
C#
<%@Page Language="C#"%>
<html>
<body>
<h1>hello world, <% Response.Write(DateTime.Now.ToString()); %></h1>
</body>
</html>
VB
<%@Page Language="VB"%>
<html>
<body>
<h1>hello world, <% Response.Write(DateTime.Now.ToString()) %></h1>
</body>
</html>
JScript
<%@Page Language="JScript"%>
<html>
<body>
<h1>hello world, <% Response.Write(DateTime.Now.ToString()); %></h1>
</body>
</html>
代码很简单,只是在浏览器中打印出当前时间的信息。我们可以添加些代码来使用Appl
ication对象,比如将对象保存为application范围类型。通过创建一个global.asax文件
,我们还可以定义各种事件处理程序,比如Application_OnStart事件触发器。

Application的生存期
一个ASP.NET application创建于服务器第一次被请求时,在那之前不会有ASP.NET代码
在执行。接受第一次请求后,一个HttpApplication实例池被创建,并激活了Applicati
on_OnStart事件。HttpApplication实例处理这个请求及随后发生的请求,直到最后的实
例退出,接着就触发Application_OnEnd事件。
注意,在每一个实例中HttpApplication的Init以及Dispose方法都被调用,因此在Appl
ication_OnStart 和 Application_OnEnd事件间将被调用多次。在一个ASP.NET
application中,只有这些事件在所有HttpApplication实例中被共享。
关于多线程
如果我们以application范围类型使用对象,我们就应该注意ASP.NET是并发处理请求的
,从而Application对象可以被多个线程所访问。因此,如果下面例子中的代码在同一时
间被不同的客户机访问,它就是危险的,可能不会达到预期目的。为对照方便,我们列
出了使用VB、C#以及JScript三种语言编写的代码:
C#
<%
Application["counter"] = (Int32)Application["counter"] + 1;
%>
VB
<%
Application("counter") = CType(Application("counter") + 1, Int32)
%>
JScript
<%
Application("counter") = Int32(Application("counter") + 1);
%>
为了实现安全的线程处理,我们可以通过Lock和Unlock方法处理这个Application对象。
请看下面使用VB、C#以及JScript三种语言编写的代码:
C#
<%
Application.Lock();
Application["counter"] = (Int32)Application["counter"] + 1;
Application.UnLock();
%>
VB
<%
Application.Lock()
Application("counter") = CType(Application("counter") + 1, Int32)
Application.UnLock()
%>
JScript
<%
Application.Lock();
Application("counter") = Int32(Application("counter") + 1);
Application.UnLock();
%>
from:asp学习网/title:.NET之ASP Web Application入门/ time:2007-6-1 22:22:18

本文主题Application,asp.NET

ASP.NET中数据库连接大全

避免10 个常见ASP.NET缺陷 使网站平稳运行

Asp.net数据库操作类 c#

asp.net从数据库导出数据到word、excel、txt文本文件

在ASP.NET中创建安全的web站点

ASP.NET 1.1 无 Cookie SessionID 重写

ASP.NET中healthMonitor属性的用法

ASP.NET的基本编程习惯

asp教程 ©2006-2007 aspxuexi.com | 关于站点 | 版权隐私 | 站内搜索
复制或者翻版 请于夜间进行