我在IIS 7 / Win2K8 Standard上运行了一个ASP .Net Web应用程序。
我想要帮助的是:
当用户在客户端(浏览器)发出请求时,我想在服务器到达时检查它上的请求对象(用于记录目的)。
特别是我想记录,至少:
同样,我想记录为同一请求呈现的响应的大小。
请求可以是整个页面请求或部分更新(updatepanel)请求。
很有必要提供任何帮助。
感谢您的期待。
答案 0 :(得分:1)
处理Global.asax文件中的Application_BeginRequest事件。像这样:
public void Application_BeginRequest(Object sender, EventArgs e) {
yourLogger.Log(String.Format("Request Time: {0}, Request IP: {1}, Request Size: {2}",
Date.Now.Time,
Request.UserHostAddress,
Request.TotalBytes)
}
答案 1 :(得分:1)
除了@ just.another.programmer的回答,我想推荐另一种方法
如果您想完全确定每个请求和响应都会实际记录即使未处理的异常发生,那么您应该考虑使用:LogRequest事件或{{ 3}}
来自MSDN
在ASP.NET执行当前请求的任何日志记录之前发生。
即使发生错误,也会引发LogRequest事件。您可以为LogRequest事件提供事件处理程序,以便为请求提供自定义日志记录。
要使用此事件,您的应用程序必须在IIS 7.0中以集成模式运行,并且必须在.NET Framework 3.0或更高版本中运行。
这些事件发生在请求生命周期结束时:
参考文献: