在global.asax(asp.net)中维护pageViews

时间:2010-03-25 07:59:51

标签: asp.net vb.net global-asax

我需要global.asax文件中的一个函数,当用户输入页面url时,该函数只被调用一次。 application_beginrequest在一个页面中被调用50-60次(为了向一个页面呈现多个请求到服务器。)

我想到了一个解决方案 - 我可以在global.asax中编写我的函数并在其他页面的页面加载时调用它,但在该解决方案中我需要在每个页面中调用它。我更喜欢只在global.asax

中完成的事情

2 个答案:

答案 0 :(得分:0)

您可以在Begin_Request函数中测试请求网址:

protected void Application_BeginRequest(object sender, EventArgs e) 
{
    // Perform some test on the request url that suits your case:
    if (Request.Url.ToString().EndsWith(".aspx"))
    {
        // ...
    }
}

答案 1 :(得分:0)

您的方法的另一个变体是创建一个Page的子类,它调用您的全局方法,或者自己完成工作,然后让您的所有页面扩展您的类而不是直接扩展Page。

public class AcmePage : Page{
     // override/subscribe to one of the page events
}
...
public class HomePage : AcmePage

如果您只是想计算网页浏览量,那么可能需要查看可用的预建分析服务,例如免费的google analytics。还有其他像CoreMetrics等。