Пример #1
0
        public IActionResult Get()
        {
            Response.StatusCode = 500;
            var m = WeChatMessageSystem.GetStatus();

            if (!DatabaseSocketsClient.Connected)
            {
                return(Json("DataBase Error"));
            }
            else if (!MessagingSystem.GetStatus)
            {
                return(Json("Messaging System Nor Working"));
            }
            else if (!m.Item1)
            {
                return(Json("WeChat Message RCVD Thread Not Working"));
            }
            else if (!m.Item2)
            {
                return(Json("WeChat Message SEND Thread Not Working"));
            }
            else if (!WeChatMessageBackupService.GetStatus)
            {
                return(Json("WeChat Message Backup Service Not Working"));
            }
            else
            {
                Response.StatusCode = 200;
                return(Json(418, StatusMonitor.ReportObject, "Status:Alive"));
            }
        }
Пример #2
0
        public static void Main(string[] args)
        {
            StartUpTime = DateTime.Now;
            L.InitLog();
            L.I("WoodenBench WebServer Starting....");
            L.I($"Startup Time {StartUpTime.ToString()}.");

            Version = new FileInfo(new string(Assembly.GetExecutingAssembly().CodeBase.Skip(8).ToArray())).LastWriteTime.ToString();
            L.I($"Version: {Version}");

            var v = XConfig.LoadAll();

            if (!(v.Item1 && v.Item2))
            {
                L.E("XConfig Load error... Quiting");
                return;
            }

            L.I("Starting Job Watcher");
            TimedJob.StartJobWatcher();
            TimedJob.AddToJobList("Get Config", XConfig.ServerConfig.GetConfig, 10, 0);
            TimedJob.AddToJobList("Session Checker", BaseController.CheckSessions, 10, 0);
            TimedJob.AddToJobList("Status Monitor", StatusMonitor.SendStatus, 10);

            DataBaseOperation.InitialiseClient();

            XConfig.ServerConfig.GetConfig();

            WeChatHelper.PrepareCodes();
            WeChatHelper.InitialiseEncryptor();

            L.I("Initialising Core Messaging Systems.....");
            WeChatMessageSystem.StartProcessThreads();
            WeChatMessageBackupService.StartBackupThread();
            MessagingSystem.StartProcessThread();

            var webHost = BuildWebHost(args, XConfig.Current.ApplicationInsightInstrumentationKey);

            L.I("Starting WebHost....");
            WebServerTask = webHost.RunAsync(ServerStopToken.Token);
            WebServerTask.Wait();
            L.E("WebServer Stoped! Cancellation Token = " + ServerStopToken.IsCancellationRequested);
            DatabaseSocketsClient.KillConnection();
        }
        public void POST(string msg_signature, string timestamp, string nonce)
        {
            MemoryStream ms = new MemoryStream();

            Request.Body.CopyTo(ms);
            string XML_Message = "";
            string _message    = Encoding.UTF8.GetString(ms.ToArray());
            int    ret         = WeChatHelper.WeChatEncryptor.DecryptMsg(msg_signature, timestamp, nonce, _message, ref XML_Message);

            if (ret != 0)
            {
                Response.StatusCode = 200;
                LW.E("WeChat Message Decrypt Failed!! " + _message);
                Response.WriteAsync("");
                return;
            }
            WeChatMessageSystem.AddToRecvList(new WeChatRcvdMessage(XML_Message, DateTime.Now));
            Response.StatusCode = 200;
            Response.WriteAsync("");
        }
Пример #4
0
        private IActionResult _InternalError(ServerAction action, string info, ResponceCode respCode)
        {
            Exception ex = HttpContext.Features.Get <ExceptionHandlerFeature>()?.Error;

            //string Page = GetAbsoluteUri(Request);
            info = info + "\r\n" + ex?.ToString();
            if (Response.StatusCode == 404)
            {
                respCode = ResponceCode.NotFound;
            }
            Response.StatusCode = Response.StatusCode == 404 ? 404 : (int)respCode;

            ViewData["where"]        = HomeController.ControllerName;
            ViewData["DetailedInfo"] = respCode.ToString();
            ViewData["ErrorAT"]      = action.ToString();
            ViewData["RespCode"]     = Response.StatusCode.ToString();
            ViewData["ErrorMessage"] = info;
            //ViewData["RAWResp"] = Page;

            string content = string.Join("\r\n",
                                         "Error Report:",
                                         DateTime.Now.ToNormalString(),
                                         CurrentUser.GetFullIdentity(),
                                         Response.StatusCode,
                                         //ViewData["RAWResp"],
                                         ViewData["ErrorMessage"].ToString(),
                                         ViewData["ErrorAT"],
                                         ViewData["DetailedInfo"]);

            WeChatSentMessage _Message = new WeChatSentMessage(WeChatSMsg.text, null, content, null, "liuhaoyu");

            L.E(content.Replace("\r\n", " -- "));

            if (respCode != ResponceCode.Default)
            {
                WeChatMessageSystem.AddToSendList(_Message);
            }
            return(View("Error"));
        }
Пример #5
0
        public static void Main(string[] args)
        {
            LW.SetLogLevel(LogLevel.Dbg);
            LW.InitLog();
            StartUpTime = DateTime.Now;
            LW.D("WoodenBench WebServer Starting....");
            LW.D($"\t Startup Time {StartUpTime.ToString()}.");
            Version = new FileInfo(new string(Assembly.GetExecutingAssembly().CodeBase.Skip(8).ToArray())).LastWriteTime.ToString();
            LW.D($"\t Version {Version}");

            var v = XConfig.LoadAll();

            if (!(v.Item1 && v.Item2))
            {
                return;
            }

            StatusMonitor.StartMonitorThread();
            WeChatHelper.ReNewWCCodes();

            DataBaseOperation.InitialiseClient();
            //DataBaseOperation.InitialiseClient(IPAddress.Loopback);

            WeChatHelper.InitialiseExcryptor();

            LW.D("Initialising Core Messaging Systems.....");
            WeChatMessageSystem.StartProcessThreads();
            WeChatMessageBackupService.StartBackupThread();
            MessagingSystem.StartProcessThread();

            var webHost = BuildWebHost(XConfig.Current.ApplicationInsightInstrumentationKey, args);

            LW.D("Starting WebHost....");

            WebServerTask = webHost.RunAsync(ServerStopToken.Token);
            WebServerTask.Wait();
            LW.E("WebServer Stoped! Cancellation Token = " + ServerStopToken.IsCancellationRequested);
        }