`

如何在ASP.NET站点中实现对用户请求的监控

 
阅读更多

如何在ASP.NET站点中实现对用户请求的监控

有朋友问到这个问题:一个站点中,如果希望监控到用户请求的地址,不管是他通过在地址栏输入地址,还是通过点击链接来请求的。要做这样的事情,其实重点是要理解APS.NETHttpModule的机制。我们可以编写一个自定义的HttpModule,专门地监控这个行为。为此,请按照下面的步骤来做:

1. 定义一个新的HttpModule

public class RequestMonitorModule:IHttpModule

   {

       #region IHttpModule 成员

       public void Dispose()

       {

       }

       public void Init(HttpApplication context)

       {

           context.BeginRequest += new EventHandler(context_BeginRequest);

       }

       void context_BeginRequest(object sender, EventArgs e)

       {

           HttpApplication app = (HttpApplication)sender;

           string url = app.Request.Url.AbsolutePath;

           string path = app.Server.MapPath("Log.txt");

           FileStream fs = new FileStream(path, FileMode.Append);

           StreamWriter sw = new StreamWriter(fs);

           sw.WriteLine(string.Format("地址:{0},时间{1}", url, DateTime.Now.ToString()));

           sw.Close();

           ///

       }

       #endregion

   }

这里的关键就在于实现IHttpModule接口,并在Init方法中为applicationBeginRequest事件绑定一个事件处理程序。

 

2.注册该Module

<httpModules>

    <add name="MyModule" type="MyWebApplication.RequestMonitorModule"/>

</httpModules>

 

3.  然后就可以进行测试了

输出的日志文件大致如下

地址:/test/default.aspx,时间2009-4-17 17:56:39

地址:/test/Product.aspx,时间2009-4-17 17:56:44

地址:/test/Product.aspx,时间2009-4-17 17:57:22

地址:/test/default.aspx,时间2009-4-17 18:00:42

地址:/test/Test.htm,时间2009-4-17 18:00:47

 

【注意】如果在VS里面调试的话,htm页面也能被监控到的,但如果真的部署到了IIS,就没有了。是因为在IIS上面,htm页面是不会交给ASP.NET引擎来处理的。那么怎么样改变这个行为呢?我们可以修改站点的配置:

点击“配置”

点击“添加”

 

分享到:
评论

相关推荐

    asp.net站点架设注意事项

    本文将深入探讨ASP.NET站点架设过程中的关键注意事项,旨在帮助开发者规避常见陷阱,优化部署流程。 ### ASP.NET概述 ASP.NET是Microsoft开发的一个用于构建动态网页和Web应用程序的框架。它基于.NET Framework或...

    ASP.NET 应用程序生命周期

    随着 Web 技术的发展,Microsoft 在 IIS7.0 中引入了一种新的集成管道模型,这极大地改变了 ASP.NET 应用程序的生命周期。本文将深入探讨 ASP.NET 应用程序在 IIS7.0 集成模式下的生命周期各阶段及其重要特性。 ###...

    asp.net网站性能优化

    在IT领域,尤其是在Web开发中,ASP.NET网站的性能优化是一项关键任务,旨在提升网站的运行速度和响应能力。本文将深入探讨与标题和描述相关的关键知识点,包括但不限于:数据库查询优化、数据处理策略、页面加载优化...

    ASP.NET招生平台系统源码_招生网站源码.zip

    在ASP.NET中,C#用于编写服务器端代码,处理用户请求,执行业务逻辑和数据库操作。 3. **数据库管理**:系统采用SQL Server 2008作为后端数据库,提供了强大的数据存储和管理能力。开发者可以利用ADO.NET或Entity ...

    ASP.NET网络系统实例之电子商务系统

    在本电子商务系统实例中,我们重点探讨如何利用ASP.NET 2.0和SQL Server来构建一个完整的在线购物平台。 首先,ASP.NET 2.0引入了许多改进,包括控件生命周期的优化、数据绑定增强、母版页(Master Pages)和站点...

    毕业设计完整版ASP.NET公交车管理系统的实现与设计(源代码+论文).zip

    在公交车管理系统中,ASP.NET可能被用来创建用户界面、处理HTTP请求、管理数据库交互以及实现业务逻辑。 本系统可能包括以下几个主要模块: 1. 用户管理:注册、登录功能,可能使用身份验证和授权机制,确保只有...

    ASP.NET文档管理系统

    在这个项目中,DAL可能采用了ADO.NET或者其他ORM(对象关系映射)框架,如Entity Framework,来实现对数据库的CRUD(创建、读取、更新、删除)操作。它封装了数据库访问逻辑,提高了代码的可维护性和可重用性。 `...

    ASP.NET - Module 5_Using Trace in Microsoft ASP.NET Pages

    ### ASP.NET - Module 5: 使用 Trace 在 Microsoft ASP.NET 页面中的应用 #### 概述 在本模块中,我们将深入探讨如何在ASP.NET页面中利用Trace功能进行代码追踪与调试。Trace是ASP.NET提供的一种非常实用的功能,...

    ASP.NET2.0静态页面生成技术

    在ASP.NET 2.0中,这一过程主要通过两种方式实现:预编译(Precompilation)和输出缓存(Output Caching)。 **预编译** 是ASP.NET 2.0的一项重要特性,允许开发者在部署前将所有ASPX页面转换为IL(Intermediate ...

    asp.net + c# 开发电子商城

    在本文中,我们将深入探讨如何使用ASP.NET 2.0和C#开发一个全面的电子商城系统。ASP.NET是微软推出的Web应用程序框架,而C#是一种面向对象的编程语言,两者结合可以创建高效、安全且易于维护的电商网站。 ### 1. ...

    商业编程-源码-Asp.Net探针0.90源码(Asp.net2.0版).zip

    Asp.Net 2.0是该框架的一个重要版本,引入了许多新特性,如母版页、站点地图、主题和皮肤、配置文件改进等,极大地提高了开发效率和用户体验。 Asp.Net探针的源码通常包括以下几个关键组成部分: 1. **性能计数器*...

    跨站点共享Session解决方案,单点登录解决方案-ASP.NET 2.0版本

    在ASP.NET 2.0开发中,当需要在多个网站之间共享用户状态或者实现单点登录(Single Sign-On, SSO)时,面临的主要挑战是如何跨站点传递和管理Session信息。传统的解决方案包括使用数据库存储Session数据或利用...

    Asp.net+Mvc+NGinx+IIS分布式部署和负载平衡图解

    在本场景中,IIS将作为Asp.net MVC应用的托管平台,处理来自Nginx的请求。 4. **分布式部署**:分布式部署是指将应用程序的不同组件分布在多台服务器上,以提高系统的可扩展性和容错性。在这个例子中,Nginx作为...

    ASP.NET_防盗链技术

    ASP.NET防盗链技术是Web开发中的一个重要概念,主要用于保护网站的资源不被未经授权的第三方站点引用,例如防止图片、视频或文件被其他网站非法盗用。这种技术在内容丰富的网站和在线服务中尤为关键,因为它可以保护...

    ASP.NET技术实例

    实例中可能包含有关ASP.NET应用部署到IIS(Internet Information Services)服务器的教程,以及如何进行性能监控和调优的技巧。理解IIS配置、缓存策略、异步处理和负载均衡等概念,对于确保ASP.NET应用程序的稳定性...

    Asp.NET仓储管理系统(C#)经典项目

    该项目的核心目标是实现对仓库库存的高效管理和监控,帮助用户更好地追踪和控制库存流动,提高业务效率。 1. **ASP.NET框架**:ASP.NET是微软提供的一个用于构建Web应用程序的开发框架,它简化了Web应用的开发过程...

    asp.net培训资料

    在ASP.NET MVC中,开发者需要理解模型(Model)、视图(View)和控制器(Controller)之间的关系。学习路由、视图引擎和依赖注入等概念,能帮助你构建更灵活的Web应用。 5. Web API ASP.NET Web API是构建HTTP服务...

    asp.net + c# 开发BBS论坛

    在ASP.NET 2.0版本中,引入了诸如母版页(Master Pages)、站点导航(Site Navigation)和主题(Themes)等特性,提高了开发者的工作效率和应用程序的用户体验。 2. **C#语言**:C#是.NET Framework的主要编程语言...

    asp.net论坛

    在ASP.NET中,这类页面通常会有输入字段(如文本框)和提交按钮,以及处理用户输入并将其存储到数据库的后端逻辑。 3. **Admin_ModelAdd.aspx**:这可能是一个用于添加新模型或分类的管理界面,例如论坛的板块或...

    ASP.NET中常用的三十三种代码

    以下是对"ASP.NET中常用的三十三种代码"的详细解读: 1. **页面生命周期**:ASP.NET页面从加载到呈现经历一系列的生命周期阶段,包括初始化、加载、验证、呈现和卸载等。理解这些阶段对于调试和优化代码至关重要。 ...

Global site tag (gtag.js) - Google Analytics