コード例 #1
0
ファイル: H调试.cs プロジェクト: zergmk2/K_Basic
        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);
                    }
                };
            }
        }
コード例 #2
0
ファイル: H调试 - 复制.cs プロジェクト: zergmk2/K_Basic
        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);
                    }
                };
            }
        }
コード例 #3
0
        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();
            }
        }
コード例 #4
0
ファイル: B通用命令.cs プロジェクト: xiaomiwk/K_gps
        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"}},
            });
        }