日期:2014-05-18  浏览次数:20817 次

100分.在线等...解决既给分
Global文件中的Application_AuthenticateRequest()和Application_BeginRequest()事件在每个页面请求的时候都执行了多次...后来发现他们执行的次数是和页面中带有的用户自定义控件的数量是有关系的,就是.ascx文件,例如如果一个aspx页面中有两个ascx控件.则那两个函数就执行3次,aspx和ascx都个执行一次.这很痛苦,所以我的问题是:
能不能只执行一次那两个事件,就是只在aspx请求的时候执行,而屏蔽掉ascx请求时的执行,如何屏蔽,或有什么号的方法.
(另外:我们项目用的是Portal架构,所以有这个问题.)
在线等,,,解决既给分...


------解决方案--------------------
这个问题对我来说,太难。。不过帮顶
------解决方案--------------------
很想知道楼下帮忙解答
------解决方案--------------------
你看看可不可以把那两个事件下面所做的操作放到Application_Start 和 Application_End 事件中。在应用程序域的生命周期期间,ASP.NET 仅调用这些方法一次,而其他的对每个 HttpApplication 实例都调用一次。具体怎么说的。你可以看看有关于ASP.NET 应用程序生命周期的一些事件。
------解决方案--------------------
學習
------解决方案--------------------
路过,学习
------解决方案--------------------
关注下 帮顶

我是小菜鸟! 说的不好清见谅, 希望能够帮到你!
------解决方案--------------------
用BasePage行吗
------解决方案--------------------
把你要是实现的东西写在你的应用程序开始和结束的时候,看你自己的具体情况来定。
------解决方案--------------------
没有人能解决。看样子给不了分了。

------解决方案--------------------
探讨
to fuadam:你的方法开始编程时可以..但现在不现实了,因为是优化..不可能现在全该页面编码,只能在Application_AuthenticateRequest()方法里的实现上想办法..
to niitnanfeng:因为Application_AuthenticateRequest这个方法是在每次Request请求的时候触发的事件,如果写在应用程序触发程序就有问题了...因为我主要是想在Application_AuthenticateRequest方法里实现aspx请求时触发次方法,而aspx页面中的ascx控件Request请求时不触发A…

------解决方案--------------------
自己写一个类继承Page类
然后用户控件继承你写的类
在Application_AuthenticateRequest事件这样写
HttpApplication application = sender as HttpApplication;
IHttpHandler httpHandler = application.Context.CurrentHandler;
MyPage mypage= httpHandler as MyPage;//MyPage 表示你写的类

if(mypage==null)//表现没有继承你写的类,就不是用户控件了
{
//执行具体操作
}