using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Security; using System.Web.SessionState; using FangYar.Common; using Hangfire; using FangYar.WebUI.ashx; using Hangfire.MemoryStorage; using System.Configuration; namespace FangYar.WebUI { public class Global : System.Web.HttpApplication { private string StrKeyWord = ConfigurationManager.AppSettings["StrKeyWord"]; //private const string StrKeyWord = @"select|insert|delete|from|drop table|update|truncate|exec master|netlocalgroup administrators|:|net user|or|and"; protected void Application_Start(object sender, EventArgs e) { try { //MyLogHelper.WriteMsg(new LogInfoMo() { message = "程序启动", msgType = EnumLogMsgTypeEnum.Info, path = "" }); //MyLogHelper.WriteMsg(new LogInfoMo() { message = "测试分组", msgType = EnumLogMsgTypeEnum.Info, path = "test" }); // 在应用程序启动时运行的代码 string spireKey = "jSpNQ7JkJxpIaq78AQBARCNbH18E1Hro4NiYPtsXfbJBZFyqNcdDPgHMyhf8PR3Wccuaij2kIi5FD+1FwS3lwHk5WBxGT4lzHrVDdDSfCXnGGKN1yUj5QyX7rgguo282XF1jDry01W7aCnQelRsTFaxZgDvQAAN8JhJMm63hAJ+1T/2Xps53d222+DQwaxCdSDO4LFCxwdR//1hRZST95GxDYDnnVLOijFrqxoh8vzUvY124/8g2b2uRRCIthLiedKatO6keEZDqW7bFusEfi0Jk2kgVo8U7n02KN3xGF1CkB0UqzL3ty8zQh8QmGMY8izL30KyZq+dyNEIl4WyGqmwwfIWxza6/zoYR4jg38Qid6cmruVF0N/jAcTn0Nh2qI4COKFvpt6CTJ4Qn784DGzbrDuC2iTE3patGPhixGnHioDaY6C8q1EcWWp+N64CH8J9R4plenipHMkBlTDQsRz5rhyIluYkT+tUof+3HyfBngbmlycXeiwYZIa8rOzTx+rwvxjk49fbqYZEF69nvEKZUNLnTGw1vvYltaW1r9xzgo7JdxotA83H8Y8XmezmgT7iH30hqmdWfC/tiO7FZuvOxVIasXNUuWtebpbZ1EVWIlAnbrfD4jHQvtout1eJ7LLUhQefEQyai4m8eFDqnQaMTjTMcwyL9CuyC5gcfNHKeroVPmar/scZjY4Nfg+aXxarfu5ipoKaAFB2pRdSND04R77rQ970Km0QXf/B7JSiq95+GeFI/sFYBWuRxQd/9Bnq7Ummv7md8Rtr7xj9gbvGOa/48Q4zKFvEkFhX16/CWnUvazSkkcuj7h5YJWESsfMaFVGeIUU8XFHq/FEwZPLUEtNO04Vz1y+FdCC6PPI7X/pqqKAvI/6bw6acMgD+Gsa4TCuCrt9yQgaJSfNvUW+mSBvxvp1FMjsDwmIn/z2Of/ULCQmzyZ6xDTbV4DqxDcLAtAh8StPsIutH1i0y1SkthDhFOO+SruBNOUrQmqYBFJY2KnkarFUtLfRJDXxGdFyMwAve1lH+JLTK2YH+2bm4V8u1rQqC1v1OeRgX1N6/F0Hk2y+ku+QgvqJLuZjZGcaMjQJYbXT/b7O0aVJ91NkT/r7fZslsfPdxSg97BM+0ro78NJH7e6J3wmIl+J6sxtSc5/3gryP68/2b/oGfCL6N8v3TTbHXdKga6roXcah3rbgyt81EsHW4bH3KjfZVkjoVMl/wTxUCB7FIEvOxpxT5QrkLy+0me+JTHBuv0QxkbmBuf88VVKiZo78iGUuI+4b75rKBHkx89CkIowfyb4tHnR6SP8Gp/k+xipa0niQG0BPqIajCNQ7PVgt6q0c2kNEUIaMr/w9u7cRKn9xBeG3GIC/zweAVOOQd9kzF203EZXb0NmlScrDohI+/lBBGE"; Spire.License.LicenseProvider.SetLicenseKey(spireKey); Application.Lock(); Application["count"] = 0; //Application.Set("count",0) /Application.Add("count",0) 初始化变量,这个作用等同,都是将count设置为0。 Application["online"] = 0; //此处放置定时任务 //RecurringJob.AddOrUpdate(() => DelaySendMsg("你好,这是延时任务"), Cron.Minutely, TimeZoneInfo.Local); // 开启后台线程运行 //WebCommon.WebThreadUtil.InitStart(); Application.UnLock(); TaskRemindInfoHandler TaskReminHangler = new TaskRemindInfoHandler(); //指定Hangfire使用内存存储后台任务信息 GlobalConfiguration.Configuration.UseMemoryStorage(); RecurringJob.AddOrUpdate(() => TaskReminHangler.RollingTaskRemindInfo(), Cron.Minutely); } catch (Exception ex) { string str = "Global异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "Global" }); } } protected void Session_Start(object sender, EventArgs e) { Application.Lock(); Session.Timeout = 60; //设置一个会话的作用时间为一分钟,即一分钟内不做任何操作的话,该会话就会失效。 Application["count"] = (int)Application["count"] + 1; Application["online"] = (int)Application["online"] + 1; Application.UnLock(); } protected void Application_BeginRequest(object sender, EventArgs e) { //全局防SQL注入 //SqlChecker SqlChecker = new SqlChecker(this.Request, this.Response); //或 SqlChecker SqlChecker = new SqlChecker(this.Request,this.Response,safeUrl); //SqlChecker.Check(StrKeyWord, this.Request, this.Response); } protected void Application_AuthenticateRequest(object sender, EventArgs e) { } protected void Application_Error(object sender, EventArgs e) { } protected void Session_End(object sender, EventArgs e) { Application.Lock(); Session.Abandon(); //当以一个会话结束后,注销该会话 Application["online"] = (int)Application["online"] - 1; Application.UnLock(); } protected void Application_End(object sender, EventArgs e) { try { WebCommon.WebThreadUtil.threadSwitch = false; //终止所有Task MyTaskControlHelper.TokenSource.Cancel(); } catch (Exception ex) { string str = "Global异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "Global" }); } } } }