2010-03-17 22 views
1

在Global.asax中是否有一个事件可以在ADO.NET中执行某些SQL,以便每次向应用程序发出请求时进行记录?Global.asax和Logging

回答

3

大多数情况下,您将能够在IIS日志中获取有关请求的信息。您可以使用提供类似于SQL的功能的logparser来查询您想要的内容。

要更多信息添加到IIS日志,您可以使用Response.AppendToLog

要捕获一个应用程序的所有要求,可以使用在Global.asax中的Application_BeginRequest事件

+0

然后,你会怎么要求的完整路径请求的页面减去服务器路径?然后在一个单独的变量中请求服务器名称。我是否通过两个ServerVariables来解决这个问题? – BuddyJoe 2010-03-17 20:52:12

+1

在ASP.NET Request.Url.PathAndQuery将提供完整的url - 域名。 Request.Url.Host - 将给主机 在IIS日志中 cs-uri-query - 将给出的URI - 服务器 cs-host - 将给出的域名 – Ramesh 2010-03-17 20:59:33

1

有更好的方法来做到这一点,但在Begin_Request中调用任何你想要的。

具体做法是:

protected void Application_BeginRequest(object sender, EventArgs e) 
    { 
     //Do something at the beginning of every request. 
    } 
0

我认为你需要调查HttpModules2)(3)。

+0

我只是试图做一个这.LogRequest + = new EventHandler(global_asax_LogRequest); 但后来我得到了“这个操作需要IIS集成管道模式。”我假设我现在在工作的公司正在IIS6上运行一些ASP.NET,而在IIS7上运行一些。思考? – BuddyJoe 2010-03-17 20:47:37

+0

是啊 - 我见过它之前:) http://stackoverflow.com/questions/186548/iis6-httpmodule-this-operation-requires-iis-integrated-pipeline-mode – annakata 2010-03-17 20:57:56