2010-05-14 25 views
0

我想保存每個請求到網站。一般來說,我想包括以下信息:使用HttpModule跟蹤每個請求到網站

  1. 用戶IP,網站url,user-if-exist,date-time。
  2. 響應時間,響應成功失敗狀態。

在同一行動中收集1和2是否合理? (像相同的HttpModule)?

你知道任何現有的結構,我可以按照跟蹤每個請求/響應狀態的網站?

需要將數據記錄到sql server。

+1

http://blogs.msdn.com/carlosag/default.aspx – stacker 2010-05-14 19:28:02

+1

這屬於serverfault。問題應該是「我如何配置IIS將日誌發佈到sql server」。 – NotMe 2010-05-14 19:50:31

+0

但是,IIS顯然無法將日誌鏈接到發出請求的用戶。 – stacker 2010-05-14 23:37:28

回答

0

查看您的Web服務器日誌。

+0

數據需要記錄到sql server。 – stacker 2010-05-14 19:14:10

+0

您可以配置iis將日誌發佈到sql服務器而不是文件系統。 – NotMe 2010-05-14 19:49:52

0

IIS日誌怎麼樣?他們已經擁有迄今爲止列出的所有數據項目

+0

不要HttpModule更好的解決方案? IIS如何知道布特錯誤,如果錯誤永遠不會顯示給用戶?你可以有任何鏈接? – stacker 2010-05-14 19:16:55

+0

不,不是。某些請求永遠不會到達ASP.NET進程 - 即錯誤的URL(HTTP 404)等。此外,答覆總是被髮回。它可能隱藏在漂亮的(但無用的)屏幕後面的瀏覽器,但它會在那裏和日誌中 – mfeingold 2010-05-14 20:04:01

0

在BeginRequest方法中,您需要編寫以下代碼。

protected void Application_BeginRequest(object sender, EventArgs e) 
    { 
     //String s = HttpContext.Current.Request.Path; 
     //HttpContext.Current.RewritePath("Login.aspx"); 
     String referrer = HttpContext.Current.Request.UrlReferrer; 
     String sourceIP = HttpContext.Current.Request.UserHostAddress; 
     String browser = HttpContext.Current.Request.UserAgent; 
    }