【问题标题】:Global.asax and LoggingGlobal.asax 和日志记录
【发布时间】:2011-01-28 18:28:24
【问题描述】:

每次向应用程序发出请求时,我是否可以在 Global.asax 中利用某个事件在 ADO.NET 中执行一些 SQL 来记录日志?

【问题讨论】:

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


    【解决方案1】:

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

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

    要捕获应用程序的所有请求,您可以使用 Global.asax 的 Application_BeginRequest 事件

    【讨论】:

    • 然后你会如何要求所请求页面的完整路径减去服务器路径?然后在单独的变量中询问服务器名称。我可以通过两个 ServerVariables 来解决这个问题吗?
    • 在 ASP.NET Request.Url.PathAndQuery 将给出完整的 url - 域名。 Request.Url.Host - 将给出主机在 IIS 日志中 cs-uri-query - 将给出 URI - 服务器 cs-host - 将给出域名
    【解决方案2】:

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

    【讨论】:

    • 我只是想做一个 this.LogRequest += new EventHandler(global_asax_LogRequest);但随后我得到一个“此操作需要 IIS 集成管道模式”。我假设我现在工作的公司在 IIS6 上运行一些 ASP.NET,在 IIS7 上运行一些。想法?
    • 是的 - 我以前见过 :) stackoverflow.com/questions/186548/…
    【解决方案3】:

    有更好的方法,但在 Begin_Request 中调用任何你想要的。

    具体来说:

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

    【讨论】:

      猜你喜欢
      • 2010-10-24
      • 2013-03-14
      • 2011-06-17
      • 2012-12-16
      • 2011-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多