예제 #1
0
        protected virtual void Application_Start()
        {
            try
            {
                Cms.OfficialEnvironment = false;
                Cms.OnInit += CmsEventRegister.Init;
                Cms.Init(BootFlag.Normal, null);

                //注册路由;
                RouteCollection routes = RouteTable.Routes;
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
                //在加载cms后避免覆盖 /cms.do
                Routes.RegisterCmsMajorRoutes(routes);
                // 加载插件
                WebCtx.Current.Plugin.Connect();
                //注册自定义路由
                RegisterRoutes(routes);
                //注册CMS路由
                Routes.RegisterCmsRoutes(routes, null);
                //RouteDebug.RouteDebugger.RewriteRoutesForTesting(routes);

                //加载自定义插件
                //Cms.Plugins.Extends.LoadFromAssembly(typeof(sp.datapicker.CollectionExtend).Assembly);

                //注册定时任务
                CmsTask.Init();
            }
            catch (NotImplementedException exc)
            {
                if (exc.InnerException != null)
                {
                    // exc = exc.InnerException;
                }
                try
                {
                    HttpResponse rsp = HttpContext.Current.Response;
                    rsp.Write(@"<html><head></head>
                        <body style=""text-align:center""><h1 style="""">" + exc.Message
                              + "</h1><hr /><span>jr.Cms v" + Cms.Version
                              + "</span>\r\n<span style=\"display:none\">"
                              + exc.StackTrace + "</span>"
                              + "</body></html>");
                    rsp.End();
                    Server.ClearError();
                }
                catch (Exception ex)
                {
                    throw exc;
                }
                finally
                {
                    HttpRuntime.UnloadAppDomain();
                }
                return;
            }
        }
예제 #2
0
        /// <summary>
        /// 获取管理后台资源映射
        /// </summary>
        /// <returns></returns>
        public static string GetManagementMappingXml()
        {
            string mapTo = null;

            XmlNode node = SelectSingleNode("/maps/map[@for='management_resource']");

            if (node == null ||
                node.Attributes["to"] == null ||
                (mapTo = node.Attributes["to"].Value) == String.Empty)
            {
                Cms.TraceLog("management mapping lose!");
                return(null);
            }

            return(GetMapToPath(mapTo));
        }
예제 #3
0
        /// <summary>
        /// CMS初始化
        /// </summary>
        public static void Init()
        {
            //读取站点
            if (Cms.IsInstalled())
            {
                Cms.RegSites(SiteCacheManager.GetAllSites().ToArray());
            }

            //内嵌资源释放
            SiteResourceInit.Init();

            //设置可写权限
            Cms.Utility.SetDirCanWrite(CmsVariables.RESOURCE_PATH);
            Cms.Utility.SetDirCanWrite("templates/");
            Cms.Utility.SetDirCanWrite(CmsVariables.FRAMEWORK_PATH);
            Cms.Utility.SetDirCanWrite(CmsVariables.PLUGIN_PATH);
            Cms.Utility.SetDirCanWrite(CmsVariables.TEMP_PATH + "update");
            Cms.Utility.SetDirHidden("config");
            Cms.Utility.SetDirHidden("bin");
        }
예제 #4
0
파일: Cms.cs 프로젝트: wangjiec1/cms
        /// <summary>
        /// 设置应用程序,如在过程中发生异常则重启并提醒!
        /// </summary>
        public static void Init(BootFlag flag, String confPath)
        {
            BeforeInit();
            if (!IsInstalled())
            {
                return;
            }
            //初始化目录
            ChkCreate(CmsVariables.TEMP_PATH);
            // 加载配置
            Configuration.LoadCmsConfig(confPath);
            //设置数据库
            CmsDataBase.Initialize(String.Format("{0}://{1}", Settings.DB_TYPE.ToString(),
                                                 Settings.DB_CONN.ToString()), Settings.DB_PREFIX, Settings.SQL_PROFILE_TRACE);
            //清空临时文件
            //resetTempFiles();
            // 初始化键值存储
            InitKvDb();
            // 加载其他配置
            LoadOtherConfig();
            //获取静态服务器
            //UpdateServerInfo();

            // 正常模式启动
            if ((flag & BootFlag.Normal) != 0)
            {
                _buildSet = new CustomBuildSet();

                //
                //TODO:
                //
                //检查网站激活状态
                //SoftwareActivator.VerifyActivation();
                //如果不存在模板文件夹,则创建目录
                if (!Directory.Exists(Cms.PyhicPath + "templates/"))
                {
                    Directory.CreateDirectory(Cms.PyhicPath + "templates/").Create();
                    //暂时网络安装默认模板(后可使用资源代替)
                    Updater.InstallTemplate("default", "tpl_default.zip");
                }
                _templateManager = new TemplateManager(Cms.PyhicPath + CmsVariables.TEMPLATE_PATH);

                // 注册模板
                Template.Register("/" + CmsVariables.TEMPLATE_PATH, true);
                // 注册插件
                //PluginConfig.PLUGIN_FILE_PARTTERN = "*.dll,*.so";
                PluginConfig.PLUGIN_DIRECTORY         = CmsVariables.PLUGIN_PATH;
                PluginConfig.PLUGIN_TMP_DIRECTORY     = CmsVariables.TEMP_PATH + "plugin/";
                PluginConfig.PLUGIN_LOG_OPENED        = true;
                PluginConfig.PLUGIN_LOG_EXCEPT_FORMAT = "** {time} **:{message}\r\nSource:{source}\r\nAddress:{addr}\r\nStack:{stack}\r\n\r\n";
                string pluginPhysicPath = Cms.PyhicPath + PluginConfig.PLUGIN_TMP_DIRECTORY;
                if (!Directory.Exists(pluginPhysicPath))
                {
                    Directory.CreateDirectory(pluginPhysicPath).Create();
                }
                // 连接插件
                CmsPluginContext.Connect();

                // 设置验证码字体
                VerifyCodeGenerator.SetFontFamily(Cms.PyhicPath + CmsVariables.FRAMEWORK_ASSETS_PATH + "fonts/comic.ttf");
            }
            if (OnInit != null)
            {
                Cms.OnInit();
            }

            IsInitFinish = true;
        }