public static void 初始化(TraceEventType __日志级别 = TraceEventType.Verbose, string __日志目录 = "日志", string __日志文件名称 = "", int __保留天数 = 30) { if (_已初始化) { return; } _已初始化 = true; H日志.初始化(__日志级别, __日志目录, __日志文件名称); 日志目录 = __日志目录; var __环境信息 = new Dictionary <string, object>(); __环境信息["Version"] = Assembly.GetCallingAssembly().GetName().Version.ToString(); __环境信息["FileVersion"] = FileVersionInfo.GetVersionInfo(Assembly.GetCallingAssembly().Location).FileVersion; __环境信息["MachineName"] = Environment.MachineName; __环境信息["UserName"] = Environment.UserName; __环境信息["IP"] = String.Join(";", H网络配置.获取可用IP().Select(q => q.ToString())); __环境信息["OSVersion"] = Environment.OSVersion.VersionString; __环境信息["CLR Version"] = Environment.Version; __环境信息["Is64BitProcess"] = Environment.Is64BitProcess; __环境信息["CurrentDirectory"] = Environment.CurrentDirectory; 记录提示("程序启动", H序列化.ToJSON字符串(__环境信息)); if (__保留天数 != int.MaxValue) { 清除过期调试文件(日志目录, __保留天数); } if (处理异常) { Application.ThreadException += (sender, ex) => H异常.处理UI线程(ex.Exception, 未处理异常自动退出); AppDomain.CurrentDomain.UnhandledException += (sender, e) => { if (e.ExceptionObject == null) { return; } var ex = e.ExceptionObject as Exception; if (ex == null) { 记录致命(e.ExceptionObject.ToString()); } else { H异常.处理非UI线程(ex); } }; } }
public static void 初始化(bool __处理异常 = true, bool __清除过期日志 = true, int __保留天数 = 7) { if (_已初始化) { return; } _已初始化 = true; if (__清除过期日志) { 清除过期调试文件("日志", __保留天数); } 配置日志文件输出(); var __环境信息 = new Dictionary <string, object>(); __环境信息["Version".PadRight(20)] = Assembly.GetCallingAssembly().GetName().Version.ToString(); __环境信息["FileVersion".PadRight(20)] = FileVersionInfo.GetVersionInfo(Assembly.GetCallingAssembly().Location).FileVersion; __环境信息["MachineName".PadRight(20)] = Environment.MachineName; __环境信息["UserName".PadRight(20)] = Environment.UserName; __环境信息["IP".PadRight(20)] = String.Join(";", H网络配置.获取可用IP().Select(q => q.ToString())); __环境信息["OSVersion".PadRight(20)] = Environment.OSVersion.VersionString; __环境信息["CLR Version".PadRight(20)] = Environment.Version; __环境信息["Is64BitProcess".PadRight(20)] = Environment.Is64BitProcess; __环境信息["CurrentDirectory".PadRight(20)] = Environment.CurrentDirectory; 记录提示("程序启动", __环境信息); if (__处理异常) { Application.ThreadException += (sender, ex) => H异常.处理UI线程(ex.Exception); AppDomain.CurrentDomain.UnhandledException += (sender, e) => { if (e.ExceptionObject == null) { return; } var ex = e.ExceptionObject as Exception; if (ex == null) { 记录致命(e.ExceptionObject.ToString()); } else { H异常.处理非UI线程(ex); } }; } }
void doGIS创建_Click(object sender, EventArgs e) { try { if (_IB数据库.检测GIS数据库()) { new F对话框_确定("GIS数据库已经存在").ShowDialog(); return; } var __数据源 = this.inSQL名称.Text; if (__数据源.StartsWith(".") || __数据源.StartsWith("127.0.0.1") || H网络配置.获取可用IP().Exists(q => __数据源.StartsWith(q.ToString()))) { new F对话框_确定("请选择GIS数据库文件存放路径").ShowDialog(); var __对话框 = new FolderBrowserDialog(); if (__对话框.ShowDialog() != DialogResult.OK) { return; } HUI线程.异步执行(this, () => { //后台线程 _IB数据库.创建数据库(__对话框.SelectedPath); }, () => { //成功后UI更新 new F对话框_确定("新建GIS数据库成功").ShowDialog(); this.BeginInvoke(new Action(() => this.doGIS检测.PerformClick())); }, ex => { //失败后UI更新 new F对话框_确定("新建GIS数据库失败" + Environment.NewLine + ex.Message).ShowDialog(); }); } else { new F对话框_确定("只能在本机新建数据库").ShowDialog(); } } catch (Exception ex) { new F对话框_确定("新建GIS数据库失败" + Environment.NewLine + ex.Message).ShowDialog(); } }
public static void 配置(IT服务端 __IT服务端) { H容器.注入 <IB名片_S, B名片_S>(true, false, "", __IT服务端); H容器.注入 <IB系统_S, B系统_S>(true, false, "", __IT服务端); H容器.注入 <IB状态_S, B状态_S>(true, false, "", __IT服务端); H容器.注入 <IBFTP_S, BFTP_S>(true, false, "", __IT服务端); var __版本号 = H程序配置.获取字符串("版本号"); if (string.IsNullOrEmpty(__版本号)) { __版本号 = H调试.查询版本(); } H容器.取出 <IB名片_S>().初始化( new M名片 { 称 = "GIS服务器", 描述 = "", 版本号 = __版本号, 版本时间 = H程序配置.获取字符串("版本时间") }, new List <M参数> { new M参数("IP列表", HJSON.序列化(H网络配置.获取IP配置())), new M参数("操作系统", Environment.OSVersion.ToString()), new M参数("64位系统", Environment.Is64BitOperatingSystem.ToString()), new M参数("登录账号", Environment.UserName), }); H容器.取出 <IB状态_S>().初始化(null, DateTime.Now); H容器.取出 <IBFTP_S>(); H容器.取出 <IB系统_S>().初始化(() => { H日志.记录提示("重启"); H服务管理.重启("GIS服务器", new TimeSpan(0, 1, 0)); }, () => { H日志.记录提示("关闭"); H服务管理.关闭("GIS服务器", new TimeSpan(0, 1, 0)); }, () => new List <M版本记录> { //new M版本记录{ 版本号 = "1.0.0.0", 修改记录 = "xxx", 标签 = new List<string>{ "a", "b"}}, //new M版本记录{ 版本号 = "1.0.1.0", 修改记录 = "yyy", 标签 = new List<string>{ "a1", "b1"}}, }); }