Пример #1
0
 private void RefreshServerJsonFile()
 {
     RpcRoot.OfficialServer.AppSettingService.GetJsonFileVersionAsync(ClientAppType.AppType, HomePath.ExportServerJsonFileName, serverState => {
         AppVersionChangedEvent.PublishIfNewVersion(serverState.MinerClientVersion);
         string localServerJsonFileVersion = GetServerJsonVersion();
         if (!string.IsNullOrEmpty(serverState.JsonFileVersion) && localServerJsonFileVersion != serverState.JsonFileVersion)
         {
             RpcRoot.OSSService.AliyunOSSService.GetAliyunServerJson((data) => {
                 if (data == null || data.Length == 0)
                 {
                     return;
                 }
                 string rawJson = Encoding.UTF8.GetString(data);
                 HomePath.WriteServerJsonFile(rawJson);
                 SetServerJsonVersion(serverState.JsonFileVersion);
                 ContextReInit();
                 VirtualRoot.ThisLocalInfo(nameof(NTMinerContext), $"刷新server.json配置", toConsole: true);
             });
         }
         else
         {
             NTMinerConsole.DevDebug("server.json没有新版本");
         }
         if (serverState.WsStatus == WsStatus.Online)
         {
             VirtualRoot.RaiseEvent(new WsServerOkEvent());
         }
     });
 }
Пример #2
0
        private static void SetRdpRegistryValue(int value)
        {
            try {
                using (RegistryKey localMachine = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Default),
                       rdpKey = localMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Terminal Server", true)) {
                    if (!int.TryParse(rdpKey.GetValue("fDenyTSConnections").ToString(), out int currentValue))
                    {
                        currentValue = -1;
                    }

                    //Value was not found do not proceed with change.
                    if (currentValue == -1)
                    {
                        return;
                    }
                    else if (value == 1 && currentValue == 1)
                    {
                        NTMinerConsole.DevDebug("RDP is already disabled. No changes will be made.");
                        return;
                    }
                    else if (value == 0 && currentValue == 0)
                    {
                        NTMinerConsole.DevDebug("RDP is already enabled. No changes will be made.");
                        return;
                    }
                    else
                    {
                        rdpKey.SetValue("fDenyTSConnections", value);
                    }
                }
            }
            catch {
            }
        }
Пример #3
0
 /// <summary>
 /// 注意:Request时原始HttpContent,Fire忽略Response
 /// </summary>
 /// <param name="host"></param>
 /// <param name="port"></param>
 /// <param name="controller"></param>
 /// <param name="action"></param>
 /// <param name="query"></param>
 /// <param name="content"></param>
 /// <param name="callback"></param>
 /// <param name="timeountMilliseconds"></param>
 public static void FirePostAsync(
     string host,
     int port,
     string controller,
     string action,
     Dictionary <string, string> query,
     HttpContent content,
     Action callback          = null,
     int timeountMilliseconds = 0)
 {
     Task.Factory.StartNew(() => {
         try {
             using (HttpClient client = RpcRoot.CreateHttpClient()) {
                 client.SetTimeout(timeountMilliseconds);
                 Task <HttpResponseMessage> getHttpResponse = client.PostAsync(RpcRoot.GetUrl(host, port, controller, action, query), content);
                 if (!getHttpResponse.Result.IsSuccessStatusCode)
                 {
                     NTMinerConsole.DevDebug($"{action} http response {getHttpResponse.Result.StatusCode.ToString()} {getHttpResponse.Result.ReasonPhrase}");
                 }
                 callback?.Invoke();
             }
         }
         catch {
             callback?.Invoke();
         }
     });
 }
Пример #4
0
 static void Main(string[] args) {
     SetOut(new ConsoleOut());
     NTMinerConsole.MainUiOk();
     if (args.Length != 0) {
         if (args.Contains("--sha1", StringComparer.OrdinalIgnoreCase)) {
             File.WriteAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "sha1"), Sha1);
             return;
         }
     }
     try {
         SystemEvents.SessionEnding += SessionEndingEventHandler;
         StartTimer();
         _waitHandle = new AutoResetEvent(false);
         bool mutexCreated;
         try {
             _sMutexApp = new Mutex(true, "NTMinerDaemonAppMutex", out mutexCreated);
         }
         catch {
             mutexCreated = false;
         }
         if (mutexCreated) {
             if (!DevMode.IsDevMode) {
                 NTMinerConsole.Disable();
             }
             NTMinerRegistry.SetDaemonVersion(Sha1);
             NTMinerRegistry.SetAutoBoot("NTMinerDaemon", true);
             if (!CommandLineArgs.Args.Contains("--bootByMinerClient")) {
                 #region 是否自动启动挖矿端
                 bool isAutoBoot = MinerProfileUtil.GetIsAutoBoot();
                 if (isAutoBoot) {
                     string location = NTMinerRegistry.GetLocation(NTMinerAppType.MinerClient);
                     if (!string.IsNullOrEmpty(location) && File.Exists(location)) {
                         string processName = Path.GetFileName(location);
                         Process[] processes = Process.GetProcessesByName(processName);
                         if (processes.Length == 0) {
                             string arguments = NTMinerRegistry.GetMinerClientArguments(NTMinerAppType.MinerClient);
                             try {
                                 Process.Start(location, arguments);
                                 NTMinerConsole.DevOk(() => $"启动挖矿端 {location} {arguments}");
                             }
                             catch (Exception e) {
                                 Logger.ErrorDebugLine($"启动挖矿端失败因为异常 {location} {arguments}", e);
                             }
                         }
                         else {
                             NTMinerConsole.DevDebug($"挖矿端已经在运行中无需启动");
                         }
                     }
                 }
                 #endregion
             }
             Run();
         }
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
     }
 }
Пример #5
0
 /// <summary>
 /// 注意:Request时原始HttpContent,Fire忽略Response
 /// </summary>
 /// <param name="host"></param>
 /// <param name="port"></param>
 /// <param name="controller"></param>
 /// <param name="action"></param>
 /// <param name="query"></param>
 /// <param name="content"></param>
 /// <param name="callback"></param>
 /// <param name="timeountMilliseconds"></param>
 public static void FirePostAsync(
     string host,
     int port,
     string controller,
     string action,
     Dictionary <string, string> query,
     HttpContent content,
     Action callback          = null,
     int timeountMilliseconds = 0)
 {
     Task.Factory.StartNew(() => {
         try {
             using (HttpClient client = RpcRoot.CreateHttpClient()) {
                 client.SetTimeout(timeountMilliseconds);
                 Task <HttpResponseMessage> getHttpResponse = client.PostAsync($"http://{host}:{port.ToString()}/api/{controller}/{action}{query.ToQueryString()}", content);
                 NTMinerConsole.DevDebug($"{action} {getHttpResponse.Result.ReasonPhrase}");
                 callback?.Invoke();
             }
         }
         catch {
             callback?.Invoke();
         }
     });
 }