using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; using System.Configuration; using QMAPP.ServicesAgent; using System.Web.Configuration; namespace QMAPP.Web { // Note: For instructions on enabling IIS6 or IIS7 classic mode, // visit http://go.microsoft.com/?LinkId=9394801 /// /// 应用程序对象 /// public class MvcApplication : System.Web.HttpApplication { /// /// 数据分页尺寸 /// public static int PageSize { get; set; } /// /// 应用程序物理路径 /// public static string PhysicsRootPath { get; set; } //FJCRoot 物理路径 public static string FJCRoot { get; set; } /// /// 临时文件路径 /// public static string TempPath { get; set; } public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Login", id = UrlParameter.Optional } // Parameter defaults ); } /// /// 应用启动 /// protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RegisterRoutes(RouteTable.Routes); //配置日志处理组件 QMFrameWork.Log.LogManager.Configure("log4net"); try { //应用程序物理路径 PhysicsRootPath = Server.MapPath(HttpRuntime.AppDomainAppVirtualPath); //主程序路径 FJCRoot = ConfigurationManager.AppSettings["FJCRoot"].ToString(); //临时文件路径 TempPath = PhysicsRootPath + "Temp\\"; if (System.IO.Directory.Exists(PhysicsRootPath + "Temp") == false) { System.IO.Directory.CreateDirectory(PhysicsRootPath + "Temp"); } //设置文件操作路径 QMFrameWork.WebUI.Util.IEFileTool.TempPath = TempPath; QMFrameWork.Common.ExcelOperation.IEExcelHelper.FilePath = Server.MapPath("~/App_Data/Excel/"); QMAPP.Common.Web.Controllers.PrintController.TemplatePath = Server.MapPath("~/App_Data/Print/"); //多语言 //QMFrameWork.Common.MLanguage.LanguageHelper.Config(); //设置数据分页尺寸 if (string.IsNullOrEmpty(ConfigurationManager.AppSettings["PageSize"]) == false) PageSize = int.Parse(ConfigurationManager.AppSettings["PageSize"]); else PageSize = 15; //加载静态基础数据 QMFrameWork.Common.Util.ModelDictionaryHandler.Configure(); //设置菜单文件路径 QMFrameWork.WebUI.Menu.MenuHelper.MenuFilePath = Server.MapPath("~/App_Data/Menu.xml"); //设置主应用路径 QMAPP.Common.Web.Controllers.QController.ManageCenterRoot = ConfigurationManager.AppSettings["ManageCenterRoot"].ToString(); QMAPP.Common.Web.Controllers.QController.PhysicsRootPath = PhysicsRootPath; //初始化服务 ServiceAgent.Init(); //加载字段帮助提示 //记录日志 QMFrameWork.Log.LogManager.LogHelper.Info( new QMFrameWork.Log.LogInfo { ClientIP = "localhost", UserName = "admin", Info = "应用启动"}); } catch (Exception ex) { if (QMFrameWork.Log.LogManager.LogHelper != null) { QMFrameWork.Log.LogManager.LogHelper.Error( new QMFrameWork.Log.LogInfo { ClientIP = "localhost", UserName = "admin", Info = "应用启动",ErrorInfo=ex }); } throw ex; } } protected void Application_Error(object sender, EventArgs e) { //Exception ex = Server.GetLastError(); //RouteData routeData = new RouteData(); //routeData.Values.Add("controller", "Error"); //if (ex == null) //{ // ex = new Exception("系统异常"); //} //routeData.Values.Add("action", "ShowException"); //routeData.Values.Add("error", ex); //Server.ClearError(); //IController errorController = new QMAPP.Common.Controllers.ErrorController(); //errorController.Execute(new RequestContext(new HttpContextWrapper(Context), routeData)); } /// /// 应用停止 /// protected void Application_End() { } void Application_BeginRequest(object sender, EventArgs e) { //本代码的功能是检查页面请求的大小,如果超过了配置文件maxRequestLength的设定值,就提示用户超过了所允许的文件大小。 //从配置文件里得到配置的允许上传的文件大小 HttpRuntimeSection runTime = (HttpRuntimeSection)WebConfigurationManager.GetSection("system.web/httpRuntime"); //maxRequestLength 为整个页面的大小,不仅仅是上传文件的大小,所以扣除 100KB 的大小, //maxRequestLength单位为KB int maxRequestLength = (runTime.MaxRequestLength) * 1024; //当前请求上下文的HttpApplication实例 //HttpContext context = ((HttpApplication)sender).Context; //判断请求的内容长度是否超过了设置的字节数 if (Request.ContentLength > maxRequestLength) { //注意这里可以跳转,可以直接终止;在VS里调试时候得不到想要的结果,通过IIS才能得到想要的结果;FW4.0经典或集成都没问题 //Response.Write("请求大小" + Request.ContentLength); Response.Write(""); Response.End(); } } } }