使用 Global.asax 文件

作者:未知      请速与本人联系



Global.asax 文件
除了编写 UI 代码外,开发人员还可以将应用程序级别的逻辑和事件处理代码添加到他们的 Web 应用程序中。此代码不处理 UI 的生成,并且一般不为响应个别页请求而被调用。相反,它负责处理更高级别的应用程序事件,如 Application_Start、Application_End、Session_Start、Session_End 等等。开发人员使用位于特定 Web 应用程序虚拟目录树根处的 Global.asax 文件来创作此逻辑。第一次激活或请求应用程序命名空间内的任何资源或 URL 时,ASP.NET 自动分析该文件并将其编译成动态 .NET 框架类(此类扩展了 HttpApplication 基类)。

第一次激活或请求应用程序命名空间内的任何资源或 URL 时,ASP.NET 分析 Global.asax 文件并将其动态编译成 .NET 框架类。Global.asax 文件被配置为自动拒绝任何直接 URL 请求,从而使外部用户不能下载或查看内部代码。

应用程序或会话范围内的事件

通过在 Global.asax 文件中创作符合命名模式“Application_EventName(AppropriateEventArgumentSignature)”的方法,开发人员可以为 HttpApplication 基类的事件定义处理程序。例如:

C#:
<script language="C#" runat="server">

void Application_Start(object sender, EventArgs e) {
// Application startup code goes here
}
</script>

VB:
<script language="VB" runat="server">

Sub Application_Start(Sender As Object, E As EventArgs)
' Application startup code goes here
End Sub
</script>


如果事件处理代码需要导入附加的命名空间,可以在 .aspx 页中使用 @ import 指令,如下所示:

<%@ Import Namespace="System.Text" %>


第一次打开页时,引发应用程序和会话的 Start 事件:


C#:
void Application_Start(object sender, EventArgs e) {
// Application startup code goes here
}

void Session_Start(object sender, EventArgs e) {
Response.Write("Session is Starting...<br>");
Session.Timeout = 1;
}

VB
Sub Application_Start(Sender As Object, E As EventArgs)
' Application startup code goes here
End Sub

Sub Session_Start(Sender As Object, E As EventArgs)
Response.Write("Session is Starting...<br>")
Session.Timeout = 1
End Sub


对每个请求都引发 BeginRequest 和 EndRequest 事件。刷新页时,只显示来自 BeginRequest、EndRequest 和 Page_Load 方法的消息。注意:通过放弃当前会话(单击“结束此会话”按钮),将创建新的会话并且再次引发 Session_Start 事件。

应用程序或会话范围内的对象

静态对象、.NET 框架类和 COM 组件都可以使用对象标记在 Global.asax 文件中定义。范围可以是 appinstance、session 或 application。appinstance 范围表示对象特定于 HttpApplication 的一个实例并且不共享。


<object id="id" runat="server" class=".NET Framework class Name" scope="appinstance"/>
<object id="id" runat="server" progid="COM ProgID" scope="session"/>
<object id="id" runat="server" classid="COM ClassID" scope="application"/>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值