Example #1
0
        /// <summary>
        /// 服务的入口函数。
        /// </summary>
        /// <param name="args">启动服务的命令行参数。</param>
        public static void Main(string[] args)
        {
            // 默认情况下,该服务以 Windows 服务的方式运行,使用 --NotWindowsService 命令行参数可让其以非 Windows 服务的方式运行。
            List <string> Argments          = new List <string>(args);
            int           RunAsServiceIndex = Argments.IndexOf("--NotWindowsService");

            if (RunAsServiceIndex != -1)
            {
                Argments.RemoveAt(RunAsServiceIndex); // 在自定义的命令行参数判断完成后应删除它(否则程序会出错)。
            }
            IConfiguration AppSettings = BuildConfiguration();

            MainWebHost             = BuildWebHost(Argments.ToArray(), AppSettings);
            AppServices.ContentRoot = ContentRoot;
#if NET462
            if (RunAsServiceIndex != -1)
            {
                MainWebHost.Run();
            }
            else
            {
                MainWebHost.RunAsWindowsService();
            }
#else
            MainWebHost.Run();
#endif
        }