public void AddErrLog(string strMsg, string strStackTrace) { VisitorInfo visitorInfo = STATClient.GetVisitorInfo(); if (visitorInfo != null) { visitorInfo.ErrMessage = strMsg; visitorInfo.StackTrace = strStackTrace; Visitor.Add(visitorInfo); } }
public static VisitorInfo GetVisitorInfo() { VisitorInfo result; if (HttpContext.Current != null) { VisitorInfo visitorInfo = new VisitorInfo(); HttpContext.Current.Response.Expires = 0; NameValueCollection serverVariables = HttpContext.Current.Request.ServerVariables; visitorInfo.IPAddress = IPUtils.GetIP(); string text = serverVariables["HTTP_USER_AGENT"] ?? string.Empty; visitorInfo.UserAgent = text; visitorInfo.OPSystem = STATClient.GetOPSystem(text); visitorInfo.CustomerLang = ((HttpContext.Current.Request.UserLanguages != null) ? HttpContext.Current.Request.UserLanguages[0].ToLower() : string.Empty); visitorInfo.Navigator = STATClient.GetBrowser(text); HttpBrowserCapabilities browser = HttpContext.Current.Request.Browser; visitorInfo.IsMobileDevice = browser.IsMobileDevice; visitorInfo.IsSupportActiveX = browser.ActiveXControls; visitorInfo.IsSupportCookie = browser.Cookies; visitorInfo.IsSupportJavascript = browser.JavaScript; if (browser.ClrVersion == null) { visitorInfo.NETVer = "不支持"; } else { visitorInfo.NETVer = browser.ClrVersion.ToString(); } visitorInfo.IsCrawler = browser.Crawler; visitorInfo.VPage = HttpContext.Current.Request.Url.ToString(); if (HttpContext.Current.Request.UrlReferrer != null) { string text2 = HttpContext.Current.Request.UrlReferrer.ToString(); if (text2 != "" && text2.Substring(text2.Length - 1, 1) == "/") { text2 = text2.Substring(0, text2.Length - 1); } visitorInfo.ApproachUrl = text2; string[] array = STATClient.GetSearchEngine(text2).Split(new char[] { '|' }); if (array.Length == 3) { visitorInfo.Engine = array[0] + "[" + array[1] + "]"; visitorInfo.KeyWord = array[2]; } } else { visitorInfo.ApproachUrl = "手动输入地址"; } if (HttpContext.Current.Request.Cookies.Count > 0) { StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < HttpContext.Current.Request.Cookies.Count; i++) { if (i == HttpContext.Current.Request.Cookies.Count - 1) { stringBuilder.Append(HttpContext.Current.Request.Cookies[i].Name + ":" + HttpContext.Current.Request.Cookies[i].Values); } else { stringBuilder.Append(string.Concat(new object[] { HttpContext.Current.Request.Cookies[i].Name, ":", HttpContext.Current.Request.Cookies[i].Values, "|" })); } } visitorInfo.CookieParameter = stringBuilder.ToString(); } if (HttpContext.Current.Request.QueryString.Count > 0) { StringBuilder stringBuilder2 = new StringBuilder(); for (int i = 0; i < HttpContext.Current.Request.QueryString.Count; i++) { if (i == HttpContext.Current.Request.QueryString.Count - 1) { stringBuilder2.Append(HttpContext.Current.Request.QueryString.AllKeys[i] + ":" + HttpContext.Current.Request.QueryString[i]); } else { stringBuilder2.Append(HttpContext.Current.Request.QueryString.AllKeys[i] + ":" + HttpContext.Current.Request.QueryString[i] + "|"); } } visitorInfo.GETParameter = stringBuilder2.ToString(); } if (HttpContext.Current.Request.Form.Count > 0) { StringBuilder stringBuilder3 = new StringBuilder(); for (int i = 0; i < HttpContext.Current.Request.Form.Count; i++) { string a = HttpContext.Current.Request.Form.AllKeys[i]; if (a != "__VIEWSTATE") { if (i == HttpContext.Current.Request.Form.Count - 1) { stringBuilder3.Append(HttpContext.Current.Request.Form.AllKeys[i] + ":" + HttpContext.Current.Request.Form[i]); } else { stringBuilder3.Append(HttpContext.Current.Request.Form.AllKeys[i] + ":" + HttpContext.Current.Request.Form[i] + "|"); } } } visitorInfo.POSTParameter = stringBuilder3.ToString(); } visitorInfo.ErrMessage = string.Empty; visitorInfo.StackTrace = string.Empty; visitorInfo.Lang = JObject.cultureLang; visitorInfo.AutoTimeStamp = DateTime.Now; result = visitorInfo; } else { result = null; } return(result); }