namespace FineUIPro.Web
{
using System;
using System.Configuration;
using System.Globalization;
using System.Text;
using BLL;
using Model;
public class Global : System.Web.HttpApplication
{
///
/// 自动启用插件标志文件路径
///
//private static string applicationActiveFlagFilePhysicalPath = String.Empty;
protected void Application_Start(object sender, EventArgs e)
{
Application["OnlineUserCount"] = 0;
Model.Sys_User sysUser = new Sys_User();
try
{
Funs.RootPath = Server.MapPath("~/");
// 日志文件所在目录
ErrLogInfo.DefaultErrLogFullPath = Server.MapPath("~/ErrLog.txt");
Funs.ConnString = ConfigurationManager.AppSettings["ConnectionString"];
Funs.SystemName = ConfigurationManager.AppSettings["SystemName"];
Funs.SGGLUrl = ConfigurationManager.AppSettings["SGGLUrl"];
Funs.RealNameApiUrl = ConfigurationManager.AppSettings["RealNameApiUrl"];
Funs.localRoot = ConfigurationManager.AppSettings["localRoot"];
sysUser = UserService.GetUserByUserId(Const.sysglyId);
}
catch (Exception ex)
{
ErrLogInfo.WriteLog(string.Empty, ex);
//AppDomain.Unload(AppDomain.CurrentDomain);
}
//////得到集团服务器路径
try
{
string address = ConfigurationManager.AppSettings["endpoint"];
Funs.SystemVersion = ConfigurationManager.AppSettings["SystemVersion"];
}
catch (Exception ex)
{
ErrLogInfo.WriteLog("得到集团服务器地址失败!", ex);
}
////实名制同步定时器
try
{
if (ConfigurationManager.AppSettings["EnableRealName"] == "True")
{
BLL.RealNameMonitorService.StartMonitor();
}
}
catch (Exception ex)
{
ErrLogInfo.WriteLog("实名制同步定时器启动失败!", ex);
}
////通用定时器
try
{
QuartzServices.Init();
BLL.MonitorService.StartMonitor();
BLL.MonitorService.StartMonitorEve();
BLL.MonitorService.StartPersonQuarterCheck();
}
catch (Exception ex)
{
ErrLogInfo.WriteLog("通用定时器!", ex);
}
///实名制日志清理定时器
try
{
BLL.RealNameMonitorService.StartMonitorDeletePushLog();
BLL.LogService.AddSys_Log(sysUser, string.Empty, string.Empty, string.Empty, "实名制日志清理定时器启动成功!");
}
catch (Exception ex)
{
ErrLogInfo.WriteLog("实名制日志清理定时器启动失败!", ex);
}
///考勤记录清理定时器
try
{
BLL.RealNameMonitorService.StartMonitorCleanAttendance();
BLL.LogService.AddSys_Log(sysUser, string.Empty, string.Empty, string.Empty, "考勤去重定时器启动成功!");
}
catch (Exception ex)
{
ErrLogInfo.WriteLog("实名制日志清理定时器启动失败!", ex);
}
}
protected void Session_Start(object sender, EventArgs e)
{
Session.Timeout = 60;
// 这种统计在线人数的做法会有一定的误差
Application.Lock();
Application["OnlineUserCount"] = (int)Application["OnlineUserCount"] + 1;
Application.UnLock();
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
}
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
}
protected void Application_Error(object sender, EventArgs e)
{
StringBuilder errLog = null;
Exception ex = null;
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
Sys_ErrLogInfo newErr = new Sys_ErrLogInfo
{
ErrLogId = SQLHelper.GetNewID()
};
try
{
// 获取错误类
ex = Server.GetLastError().InnerException;
if (ex == null)
{
ex = Server.GetLastError().GetBaseException();
}
errLog = new StringBuilder();
errLog.Append(String.Format(CultureInfo.InvariantCulture, "出错文件:{0}\r\n", Request.Url.AbsoluteUri));
newErr.ErrUrl = Request.Url.AbsoluteUri;
if (Request.UserHostAddress != null)
{
errLog.Append(String.Format(CultureInfo.InvariantCulture, "IP地址:{0}\r\n", Request.UserHostAddress));
newErr.ErrIP = Request.UserHostAddress;
}
if (Session != null && Session["CurrUser"] != null)
{
errLog.Append(String.Format(CultureInfo.InvariantCulture, "操作人员:{0}\r\n", ((Model.Sys_User)Session["CurrUser"]).UserName));
newErr.UserName = ((Model.Sys_User)Session["CurrUser"]).UserId;
}
else
{
PageBase.PageRefresh(Request.ApplicationPath + "/LogOff.aspx");
}
}
catch
{
try
{
PageBase.PageRefresh(Request.ApplicationPath + "/LogOff.aspx");
}
catch
{
}
}
finally
{
if (errLog != null)
{
db.Sys_ErrLogInfo.InsertOnSubmit(newErr);
db.SubmitChanges();
}
ErrLogInfo.WriteLog(newErr.ErrLogId, ex, errLog == null ? null : errLog.ToString());
Server.ClearError();
//PageBase.PageRefresh(Request.ApplicationPath + "/LogOff.aspx");
}
}
}
///
/// 缓存结束
///
///
///
protected void Session_End(object sender, EventArgs e)
{
}
///
/// 活动结束
///
///
///
protected void Application_End(object sender, EventArgs e)
{
}
}
}