asp.net Global.asax Application_Start

Posted

技术标签:

【中文标题】asp.net Global.asax Application_Start【英文标题】: 【发布时间】:2013-05-04 22:34:25 【问题描述】:

我正在使用带有框架 3.5 的 Visual Studio 2010。

我从头开始创建了一个 asp.net 网站,并在项目中添加了一个 Global.asax。

在 global.asax 上,有 Application_Start 事件。我在该事件上放置了一个断点并开始调试网站,我注意到它到达了断点。但是如果我关闭网站并再次开始调试,断点不会被命中。如果我停止 ASP.NET 开发服务器并重新开始调试,则再次命中断点。

所以,阅读这篇文章:

http://www.techrepublic.com/article/working-with-the-aspnet-globalasax-file/5771721

它说:Application_Init 和 Application_Start 事件在应用程序首次启动时触发一次。

所以我猜这意味着应用程序首次使用服务器启动时。我想 IIS 也会发生同样的事情,需要重新启动 IIS 以便再次触发 Application_Start。

如果 global.asax 是这种情况,那么我不能使用它。

问题是我希望每次访问我网站上的特定页面时执行一段代码。

为了实现这一点,我需要将该代码放在我的母版页或网站的特定页面上?

谢谢...

【问题讨论】:

你能说出这段代码的作用吗?您想在每次用户打开浏览器并导航到您的网站时运行它吗? 目前的代码什么也不做。正如我所说,我刚刚开始了这个项目,我只是在测试事件并测试何时被解雇。是的,我希望每次用户打开浏览器时都运行代码。 如果用户从不关闭浏览器(我的浏览器有时会打开几天)怎么办? 你说得对,对不起。我的意思是我希望每次用户访问网站内的页面时都运行代码。 @trek 如果是这种情况,您应该更新您的问题。 【参考方案1】:

我相信Application_BeginRequest 可能就是您要找的。​​p>

【讨论】:

就目前的问题而言,我不确定这是否可行。 OP 现在只要求特定页面上的行为。 ;) @DavinTryon 不确定,对我来说它读作任何页面——但我还是要求澄清这一点。【参考方案2】:

我的看法是将所需的代码放在需要行为的特定页面的 Page_Load 事件中。

而且,如果它是所有页面都需要的东西,它可以放在母版页的 Page_Load 事件中,这样每次访问网站上的任何页面时都会触发它。

如果我对这个答案有误,请纠正我。谢谢!

【讨论】:

以上是关于asp.net Global.asax Application_Start的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET-关于Global.asax的作用

ASP.NET中的Webconfig 和 Global.asax区别

asp.net mvc global.asax文件详解

asp.net Global.asax Application_Start

ASP.NET 将响应保存到 global.asax 中的文件

asp.net c# - 设置会话然后通过 global.asax 重定向用户