如何在ASP.NET站点中实现对用户请求的监控
有朋友问到这个问题:一个站点中,如果希望监控到用户请求的地址,不管是他通过在地址栏输入地址,还是通过点击链接来请求的。要做这样的事情,其实重点是要理解APS.NET的HttpModule的机制。我们可以编写一个自定义的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方法中为application的BeginRequest事件绑定一个事件处理程序。
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是Microsoft开发的一个用于构建动态网页和Web应用程序的框架。它基于.NET Framework或...
随着 Web 技术的发展,Microsoft 在 IIS7.0 中引入了一种新的集成管道模型,这极大地改变了 ASP.NET 应用程序的生命周期。本文将深入探讨 ASP.NET 应用程序在 IIS7.0 集成模式下的生命周期各阶段及其重要特性。 ###...
在IT领域,尤其是在Web开发中,ASP.NET网站的性能优化是一项关键任务,旨在提升网站的运行速度和响应能力。本文将深入探讨与标题和描述相关的关键知识点,包括但不限于:数据库查询优化、数据处理策略、页面加载优化...
在ASP.NET中,C#用于编写服务器端代码,处理用户请求,执行业务逻辑和数据库操作。 3. **数据库管理**:系统采用SQL Server 2008作为后端数据库,提供了强大的数据存储和管理能力。开发者可以利用ADO.NET或Entity ...
在本电子商务系统实例中,我们重点探讨如何利用ASP.NET 2.0和SQL Server来构建一个完整的在线购物平台。 首先,ASP.NET 2.0引入了许多改进,包括控件生命周期的优化、数据绑定增强、母版页(Master Pages)和站点...
在公交车管理系统中,ASP.NET可能被用来创建用户界面、处理HTTP请求、管理数据库交互以及实现业务逻辑。 本系统可能包括以下几个主要模块: 1. 用户管理:注册、登录功能,可能使用身份验证和授权机制,确保只有...
在这个项目中,DAL可能采用了ADO.NET或者其他ORM(对象关系映射)框架,如Entity Framework,来实现对数据库的CRUD(创建、读取、更新、删除)操作。它封装了数据库访问逻辑,提高了代码的可维护性和可重用性。 `...
### ASP.NET - Module 5: 使用 Trace 在 Microsoft ASP.NET 页面中的应用 #### 概述 在本模块中,我们将深入探讨如何在ASP.NET页面中利用Trace功能进行代码追踪与调试。Trace是ASP.NET提供的一种非常实用的功能,...
在ASP.NET 2.0中,这一过程主要通过两种方式实现:预编译(Precompilation)和输出缓存(Output Caching)。 **预编译** 是ASP.NET 2.0的一项重要特性,允许开发者在部署前将所有ASPX页面转换为IL(Intermediate ...
在本文中,我们将深入探讨如何使用ASP.NET 2.0和C#开发一个全面的电子商城系统。ASP.NET是微软推出的Web应用程序框架,而C#是一种面向对象的编程语言,两者结合可以创建高效、安全且易于维护的电商网站。 ### 1. ...
Asp.Net 2.0是该框架的一个重要版本,引入了许多新特性,如母版页、站点地图、主题和皮肤、配置文件改进等,极大地提高了开发效率和用户体验。 Asp.Net探针的源码通常包括以下几个关键组成部分: 1. **性能计数器*...
在ASP.NET 2.0开发中,当需要在多个网站之间共享用户状态或者实现单点登录(Single Sign-On, SSO)时,面临的主要挑战是如何跨站点传递和管理Session信息。传统的解决方案包括使用数据库存储Session数据或利用...
在本场景中,IIS将作为Asp.net MVC应用的托管平台,处理来自Nginx的请求。 4. **分布式部署**:分布式部署是指将应用程序的不同组件分布在多台服务器上,以提高系统的可扩展性和容错性。在这个例子中,Nginx作为...
ASP.NET防盗链技术是Web开发中的一个重要概念,主要用于保护网站的资源不被未经授权的第三方站点引用,例如防止图片、视频或文件被其他网站非法盗用。这种技术在内容丰富的网站和在线服务中尤为关键,因为它可以保护...
实例中可能包含有关ASP.NET应用部署到IIS(Internet Information Services)服务器的教程,以及如何进行性能监控和调优的技巧。理解IIS配置、缓存策略、异步处理和负载均衡等概念,对于确保ASP.NET应用程序的稳定性...
该项目的核心目标是实现对仓库库存的高效管理和监控,帮助用户更好地追踪和控制库存流动,提高业务效率。 1. **ASP.NET框架**:ASP.NET是微软提供的一个用于构建Web应用程序的开发框架,它简化了Web应用的开发过程...
在ASP.NET MVC中,开发者需要理解模型(Model)、视图(View)和控制器(Controller)之间的关系。学习路由、视图引擎和依赖注入等概念,能帮助你构建更灵活的Web应用。 5. Web API ASP.NET Web API是构建HTTP服务...
在ASP.NET 2.0版本中,引入了诸如母版页(Master Pages)、站点导航(Site Navigation)和主题(Themes)等特性,提高了开发者的工作效率和应用程序的用户体验。 2. **C#语言**:C#是.NET Framework的主要编程语言...
在ASP.NET中,这类页面通常会有输入字段(如文本框)和提交按钮,以及处理用户输入并将其存储到数据库的后端逻辑。 3. **Admin_ModelAdd.aspx**:这可能是一个用于添加新模型或分类的管理界面,例如论坛的板块或...
以下是对"ASP.NET中常用的三十三种代码"的详细解读: 1. **页面生命周期**:ASP.NET页面从加载到呈现经历一系列的生命周期阶段,包括初始化、加载、验证、呈现和卸载等。理解这些阶段对于调试和优化代码至关重要。 ...