Ejemplo n.º 1
0
        public override void OnException(ExceptionContext filterContext)
        {
            //base.OnException(filterContext);

            var _path = filterContext.HttpContext.Request.Url.LocalPath;

            // string msg = _path + "请求出现错误:" + HttpUtility.UrlEncode(filterContext.Exception.Message);

            // Logic.BaseLogic.DisEntity();
            //LogHelper.ErrorLog(msg);
            //添加错误队列
            HWebQueue.InLogQueue_Error(filterContext.Exception, WebHelper.GetIP(filterContext.HttpContext.Request));
            //ajax请求不用跳转
            if (_path.IndexOf("Ajax") >= 0 || _path.IndexOf("Error") > 0)
            {
                filterContext.RequestContext.HttpContext.Response.Write("{State:2,Message:'服务器内部错误'}");
                filterContext.RequestContext.HttpContext.Response.End();
                return;
            }

            if (!filterContext.ExceptionHandled)
            {
                filterContext.ExceptionHandled = true;
                filterContext.HttpContext.Response.Redirect("/Error/Index?error=" + filterContext.Exception.Message);
            }
        }
Ejemplo n.º 2
0
 protected void Application_Start()
 {
     AreaRegistration.RegisterAllAreas();
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     //加载系统配置
     WebHelper.LoadConfig();
     //启动日志队列
     HWebQueue.StartLogQueue();
     //启动指令队列
     HWebQueue.StartCmdQueue(600);
 }
Ejemplo n.º 3
0
        /// <summary>
        /// 获取客户端请求ip
        /// </summary>
        /// <returns></returns>
        public string GetIP()
        {
            if (Session[ConstVal.SessionIpStr] != null)
            {
                return(Session[ConstVal.SessionIpStr].ToString());
            }

            string userIP = "";

            try
            {
                string ip = string.Empty;

                if (!string.IsNullOrEmpty(Request.ServerVariables["HTTP_VIA"]))
                {
                    ip = Convert.ToString(Request.ServerVariables["HTTP_X_FORWARDED_FOR"]);
                }
                if (string.IsNullOrEmpty(ip))
                {
                    ip = Request.UserHostAddress;
                }

                // 利用 Dns.GetHostEntry 方法,由获取的 IPv6 位址反查 DNS 纪录,<br> // 再逐一判断何者为 IPv4 协议,即可转为 IPv4 位址。
                foreach (IPAddress ipAddr in Dns.GetHostEntry(ip).AddressList)
                {
                    if (ipAddr.AddressFamily.ToString() == "InterNetwork")
                    {
                        userIP = ipAddr.ToString();
                    }
                }
            }
            catch (Exception ex)
            {
                if (userIP == "")
                {
                    userIP = "1.1.1.1";
                }
                HWebQueue.InLogQueue_Error(ex);
            }

            return(userIP);
        }