成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

巧用Environment.UserInteractive 實(shí)現(xiàn)開發(fā)和生產(chǎn)環(huán)境的分開調(diào)試部署

開發(fā) 后端
平常我們在做服務(wù)開發(fā)的時(shí)候,經(jīng)常是希望本地可以直接調(diào)試;在生產(chǎn)環(huán)境是以服務(wù)允許的;這時(shí)候,一般的做法寫2段代碼,需要什么環(huán)境就注釋那段代碼,這樣很麻煩,這時(shí)候就可以利用Environment判斷當(dāng)前的環(huán)境。

[[411578]]

本文轉(zhuǎn)載自微信公眾號「UP技術(shù)控」,作者conan5566。轉(zhuǎn)載本文請聯(lián)系UP技術(shù)控公眾號。

概述

平常我們在做服務(wù)開發(fā)的時(shí)候,經(jīng)常是希望本地可以直接調(diào)試;在生產(chǎn)環(huán)境是以服務(wù)允許的;這時(shí)候,一般的做法寫2段代碼,需要什么環(huán)境就注釋那段代碼,這樣很麻煩,這時(shí)候就可以利用Environment判斷當(dāng)前的環(huán)境。C#中獲取系統(tǒng)環(huán)境變量需要用到Environment 類。其中提供了有關(guān)當(dāng)前環(huán)境和平臺的信息以及操作它們的方法。該類不能被繼承,以下代碼得到%systemdrive%的值,即“C:”

  1. string sPath = Environment.GetEnvironmentVariable("systemdrive"); 
  2. Console.WriteLine(sPath); 

獲取一個(gè)值,用以指示當(dāng)前進(jìn)程是否在用戶交互模式中運(yùn)行。

  1. public static bool UserInteractive { get; } 

如果當(dāng)前進(jìn)程在用戶交互模式中運(yùn)行,則為true ;否則為 false。

注解

此UserInteractive 屬性報(bào)告 false 的 Windows 進(jìn)程或服務(wù)(如 IIS)在沒有用戶界面的情況下運(yùn)行。如果此屬性為 false ,則不會顯示模式對話框或消息框,因?yàn)闆]有可供用戶與之交互的圖形用戶界面。

Program范例

  1. internal static class Program 
  2.   { 
  3.       /// <summary> 
  4.       /// 應(yīng)用程式的主要進(jìn)入點(diǎn)。 
  5.       /// </summary> 
  6.       private static void Main(string[] args) 
  7.       { 
  8.           args = new string[1]; 
  9.           args[0] = "WeChat.SendTemplateMsgJob"
  10.  
  11.           bool isReleaseUpdateJob = Environment.UserInteractive // 上線更新舊資料,都只會手動執(zhí)行一次 
  12.               && args.Length >= 1 
  13.               && args[0].StartsWith("ReleaseUpdate"); 
  14.           //Autofac 
  15.           AutofacConfig.Bootstrapper(); 
  16.  
  17.           if (Environment.UserInteractive) 
  18.           { 
  19.               if (args.Length == 0) 
  20.               { 
  21.                   //Console 開啟 
  22.                   MainService mainService = new MainService(); 
  23.                   mainService.TestStartAndStop(args); 
  24.               } 
  25.               else 
  26.               { 
  27.                   //指定想要測試的 job 
  28.  
  29.                   #region set Culture en-US 
  30.  
  31.                   Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); 
  32.                   Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US"); 
  33.  
  34.                   #endregion set Culture en-US 
  35.  
  36.                   if (isReleaseUpdateJob) 
  37.                   { 
  38.                       string jobType = $"BigCRM.WinService.Jobs.{args[0]}"
  39.                       ReleaseUpdateJob job = Activator.CreateInstance(Assembly.GetExecutingAssembly().FullName, jobType).Unwrap() as ReleaseUpdateJob; 
  40.                       job.Call(null, args); 
  41.                   } 
  42.                   else 
  43.                   { 
  44.                       #region load config 
  45.  
  46.                       List<JobConfigItem> jobConfigItems = JobConfigItem.Get(); 
  47.                       JobConfigItem config = jobConfigItems.FirstOrDefault(m => m.JobType == args[0]); 
  48.  
  49.                       #endregion load config 
  50.  
  51.                       #region init job 
  52.  
  53.                       string jobType = $"BigCRM.WinService.Jobs.{config.JobType}"
  54.                       BaseJob job = Activator.CreateInstance(Assembly.GetExecutingAssembly().FullName, jobType).Unwrap() as BaseJob; 
  55.                       job.CronSchedule = config.CronExpression; 
  56.                       job.JobType = config.JobType; 
  57.                       job.BaseSettings = config.Settings; 
  58.                       if (config.Settings != null
  59.                       { 
  60.                           job.Settings = new Quartz.JobDataMap(config.Settings); 
  61.                       } 
  62.  
  63.                       #endregion init job 
  64.  
  65.                       job.Call(null, args); 
  66.                   } 
  67.  
  68.                   Console.ReadLine(); 
  69.               } 
  70.           } 
  71.           else 
  72.           { 
  73.               ServiceBase[] ServicesToRun; 
  74.               ServicesToRun = new ServiceBase[] 
  75.               { 
  76.                   new MainService() 
  77.               }; 
  78.               ServiceBase.Run(ServicesToRun); 
  79.           } 
  80.       } 
  81.   } 

 

責(zé)任編輯:武曉燕 來源: UP技術(shù)控
相關(guān)推薦

2020-10-30 10:49:37

DockerGPULinux

2020-10-19 09:50:04

Spinnaker

2013-07-29 14:23:55

Eclipse開發(fā)環(huán)境Eclipse開發(fā)環(huán)境

2013-10-16 09:38:23

云端應(yīng)用部署工具應(yīng)用部署工具云測試

2019-08-08 08:00:00

深度學(xué)習(xí)機(jī)器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

2021-03-10 07:20:42

Redis命令數(shù)據(jù)

2012-02-20 15:04:58

2013-09-30 09:40:37

VDI部署VDI

2020-12-08 12:59:42

編譯燒錄 for Mac

2011-06-17 17:16:01

Qt Eclipse Linux

2011-06-17 16:47:12

Qt Eclipse Windows

2011-06-17 17:01:22

Qt Eclipse Windows

2015-02-27 09:00:54

Docker微服務(wù)容器技術(shù)

2022-05-26 09:00:00

網(wǎng)站抓取Lightrun開發(fā)

2024-02-01 09:06:44

Company?Employee場景

2018-12-04 14:15:29

容器誤區(qū)開發(fā)

2020-11-10 08:00:00

機(jī)器學(xué)習(xí)技術(shù)科學(xué)

2010-09-01 16:43:26

Squid ACLSquid訪問列表Squid

2012-02-29 14:35:48

MySQL

2025-02-17 08:00:00

機(jī)器學(xué)習(xí)開發(fā)Docker
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 伊人免费在线观看高清 | 在线一级片| 一级毛片免费 | 久久九精品 | 免费一区 | 午夜性色a√在线视频观看9 | 亚洲精品久久久久中文字幕二区 | 日本成人中文字幕 | 国产精品自拍啪啪 | 国产精品久久精品 | 黄色在线观看网址 | 国内自拍视频在线观看 | 日韩中文一区二区三区 | 国产乱精品一区二区三区 | 国产十日韩十欧美 | 亚洲国产精品久久久久久 | 亚洲91精品| 黑人精品欧美一区二区蜜桃 | 欧美日韩在线精品 | 人人看人人射 | 日本在线免费看最新的电影 | 久久亚洲精品久久国产一区二区 | 国产中文在线 | 国产亚洲日本精品 | 九九导航 | 一级a性色生活片久久毛片 一级特黄a大片 | 青青久视频 | 91视频免费在观看 | 免费在线观看成人 | 亚洲在线视频 | 在线观看深夜视频 | 国产一区91精品张津瑜 | 国产午夜精品视频 | 午夜电影福利 | 91啪影院 | 精品久久久久久久人人人人传媒 | 亚洲国产欧美精品 | 久久久久国产精品一区二区 | 国产电影一区二区三区爱妃记 | 亚洲一区不卡 | 99reav|