/// <summary>
        /// 异步监听回调
        /// </summary>
        /// <param name="ar"></param>
        private void Result(IAsyncResult ar)
        {
            if (BaseListener == null || !BaseListener.IsListening)
            {
                return;
            }
            //当接收到请求后程序流会走到这里

            //继续异步监听
            BaseListener.BeginGetContext(Result, null);
            GUID = Guid.NewGuid().ToString();
            //获得context对象
            var context  = BaseListener.EndGetContext(ar);
            var request  = context.Request;
            var response = context.Response;

            ////如果是js的ajax请求,还可以设置跨域的ip地址与参数
            //context.Response.AppendHeader("Access-Control-Allow-Origin", "*"); //后台跨域请求,通常设置为配置文件
            //context.Response.AppendHeader("Access-Control-Allow-Headers", "ID,PW"); //后台跨域参数设置,通常设置为配置文件
            //context.Response.AppendHeader("Access-Control-Allow-Method", "post"); //后台跨域请求设置,通常设置为配置文件
            response.ContentType = "text/plain;charset=UTF-8"; //告诉客户端返回的ContentType类型为纯文本格式,编码为UTF-8
            response.AddHeader("Content-type", "text/plain");  //添加响应头信息
            response.ContentEncoding = Encoding.UTF8;
            //定义返回客户端的信息,当请求为POST方式时返回处理过的信息,否则判断可能为网页访问、返回指定消息
            string returnObj = request.HttpMethod == "POST" && request.InputStream != null?HandleRequest(request, response) : WebExplorerMessage;

            var returnByteArr = Encoding.UTF8.GetBytes(returnObj); //设置客户端返回信息的编码

            //把处理信息返回到客户端
            try { using (var stream = response.OutputStream) { stream.Write(returnByteArr, 0, returnByteArr.Length); } }
            catch (Exception ex) { LastErrorMessage = $"网络蹦了:{ex.ToString()}"; }
        }
        /// <summary>
        /// 启动监听器
        /// </summary>
        public int Start()
        {
            int result = 1;

            try
            {
                if (BaseListener == null)
                {
                    BaseListener = new HttpListener(); //提供一个简单的、可通过编程方式控制的 HTTP 协议侦听器。此类不能被继承。
                    //配置监听地址。+代表本机可能的IP,如localhost、127.0.0.1、192.168.199.X(本机IP)等,假如失败则以管理员方式启动
                    //string address = $"http://{IpAddress}:{Port}/web/";
                    string address = $"http://+:{Port}{Suffix}";
                    BaseListener.Prefixes.Clear();
                    BaseListener.Prefixes.Add(address); //定义url及端口号,通常设置为配置文件
                    BaseListener.Start();
                    Name = address;
                }
                //异步监听客户端请求,当客户端的网络请求到来时会自动执行Result委托
                //该委托没有返回值,有一个IAsyncResult接口的参数,可通过该参数获取context对象
                BaseListener.BeginGetContext(Result, null);
                _raiser.Run();
                if (BaseListener.IsListening)
                {
                    ServiceStateChanged?.BeginInvoke(this, new ServiceStateEventArgs($"HTTP监听服务{Name}已启动", ServiceState.Started), null, null);
                }
            }
            catch (Exception e)
            {
                LastErrorMessage = $"HTTP监听服务{Name}启动过程中出现错误:{e.Message}";
                result           = 0;
                Stop();
                //throw;
            }
            return(result);
        }