コード例 #1
0
        /// <summary>
        /// 启用WebHost
        /// </summary>
        /// <param name="app"></param>
        /// <param name="hostOptions"></param>
        /// <param name="env"></param>
        /// <returns></returns>
        public static IApplicationBuilder UseWebHost(this IApplicationBuilder app, HostOptions hostOptions, IHostingEnvironment env)
        {
            //异常处理
            app.UseExceptionHandle();

            //加载模块
            app.UseModules(env);

            //启用静态文件
            app.UseStaticFiles();

            //身份认证
            app.UseAuthentication();

            //CORS
            app.UseCors(builder =>
            {
                builder.AllowAnyOrigin();
                builder.AllowAnyMethod();
                builder.AllowAnyHeader();
                builder.AllowCredentials();
            });

            //开启Swagger
            if (hostOptions.Swagger || env.IsDevelopment())
            {
                app.UseCustomSwagger();
            }

            app.UseMvc();

            return(app);
        }
コード例 #2
0
 public PluginsHostLifetime(PluginApplicationContext applicationContext, IHostApplicationLifetime applicationLifetime, IOptions <HostOptions> hostOptions, ILoggerFactory loggerFactory)
 {
     _applicationContext  = applicationContext ?? throw new ArgumentNullException(nameof(applicationContext));
     _applicationLifetime = applicationLifetime ?? throw new ArgumentNullException(nameof(applicationLifetime));
     _hostOptions         = hostOptions?.Value ?? throw new ArgumentNullException(nameof(hostOptions));
     _logger = loggerFactory.CreateLogger("Zongsoft.Hosting.Lifetime");
 }
コード例 #3
0
 public FSyncConsoleLifetime(IFSyncCmdApp cliService, IHostApplicationLifetime applicationLifetime, IOptions <HostOptions> hostOptions, ILoggerFactory loggerFactory)
 {
     _cliService          = cliService ?? throw new ArgumentNullException(nameof(cliService));
     _applicationLifetime = applicationLifetime ?? throw new ArgumentNullException(nameof(applicationLifetime));
     _hostOptions         = hostOptions?.Value ?? throw new ArgumentNullException(nameof(hostOptions));
     _logger = loggerFactory.CreateLogger(nameof(FSyncConsoleLifetime));
 }
コード例 #4
0
 public StubbedSigningNotifier(
     IDataProtectionProvider dataProtectionProvider,
     IOptions <HostOptions> hostOptions)
 {
     _dataProtectionProvider = dataProtectionProvider;
     _hostOptions            = hostOptions.Value;
 }
コード例 #5
0
        private static void DumpDiagnostics(HostOptions options, Microsoft.Extensions.Logging.ILogger logger)
        {
            var providerText = new List <string>();

            providerText.AddRange(
                new[] { options.DistributedTraceProvider, options.LoggingProvider, options.MetricsProvider }
                .Where(p => p is object)
                .Cast <string>());

            foreach (var text in providerText)
            {
                if (DiagnosticsProvider.TryParse(text, out var provider))
                {
                    if (DiagnosticsProvider.WellKnownProviders.TryGetValue(provider.Key, out var wellKnown))
                    {
                        logger.LogInformation(wellKnown.LogFormat, provider.Value);
                    }
                    else
                    {
                        logger.LogWarning("Unknown diagnostics provider {Key}:{Value}", provider.Key, provider.Value);
                    }
                }
                else
                {
                    logger.LogError("Could not parse provider argument: {Arg}", text);
                }
            }
        }
コード例 #6
0
        public static HostBuilder ListenTo(this HostBuilder self, Action <HostOptions> options)
        {
            var hostOptions = new HostOptions();

            options.Invoke(hostOptions);
            self.Configure(s => s.AddSingleton(hostOptions));
            return(self);
        }
コード例 #7
0
        protected StartupAbstract(IHostingEnvironment env)
        {
            Env = env;
            var cfgHelper = new ConfigurationHelper();

            //加载主机配置项
            HostOptions = cfgHelper.Get <HostOptions>("Host", env.EnvironmentName, true);
        }
コード例 #8
0
ファイル: GrpcServer.cs プロジェクト: MirzaMerdovic/GrpcHost
 public GrpcServer(HealthServiceImpl healthService, GlobalInterceptor globalInterceptor, ILogger logger, IOptions <HostOptions> options, MethodRegistry methodRegistry)
 {
     _healthService     = healthService ?? throw new ArgumentNullException(nameof(healthService));
     _globalInterceptor = globalInterceptor ?? throw new ArgumentNullException(nameof(globalInterceptor));
     _logger            = logger ?? throw new ArgumentNullException(nameof(logger));
     _options           = options.Value ?? throw new ArgumentNullException(nameof(options));
     _methodRegistry    = methodRegistry ?? throw new ArgumentNullException(nameof(methodRegistry));
 }
コード例 #9
0
        public BackgroundGameHeadlessGameHost(string gameName = null, HostOptions options = null, bool realtime = true)
            : base(gameName, options, realtime: realtime)
        {
            var testGame = new TestGame();

            Task.Factory.StartNew(() => Run(testGame), TaskCreationOptions.LongRunning);

            testGame.HasProcessed.Wait();
        }
コード例 #10
0
 public Host(IServiceProvider services, IApplicationLifetime applicationLifetime, ILogger <Host> logger,
             IHostLifetime hostLifetime, IOptions <HostOptions> options)
 {
     Services             = services ?? throw new ArgumentNullException(nameof(services));
     _applicationLifetime = (applicationLifetime ?? throw new ArgumentNullException(nameof(applicationLifetime))) as ApplicationLifetime;
     _logger       = logger ?? throw new ArgumentNullException(nameof(logger));
     _hostLifetime = hostLifetime ?? throw new ArgumentNullException(nameof(hostLifetime));
     _options      = options?.Value ?? throw new ArgumentNullException(nameof(options));
 }
コード例 #11
0
ファイル: MycoHost.cs プロジェクト: shoff/myco-journal
 public MycoHost(IServiceProvider services, IHostApplicationLifetime applicationLifetime, ILogger <MycoHost> logger,
                 IHostLifetime hostLifetime, IOptions <HostOptions> options)
 {
     this.Services            = services ?? throw new ArgumentNullException(nameof(services));
     this.applicationLifetime = (applicationLifetime ?? throw new ArgumentNullException(nameof(applicationLifetime))) as ApplicationLifetime;
     this.logger       = logger ?? throw new ArgumentNullException(nameof(logger));
     this.hostLifetime = hostLifetime ?? throw new ArgumentNullException(nameof(hostLifetime));
     this.options      = options?.Value ?? throw new ArgumentNullException(nameof(options));
 }
コード例 #12
0
        /// <summary>
        /// Creates a process options instance
        /// </summary>
        /// <returns>The process options instance</returns>
        public override IProcessOptions CreateOptions()
        {
            var opts = new HostOptions()
            {
                ProcessId = this.ProcessId
            };

            return(opts);
        }
コード例 #13
0
 public UnityHostLifetime(IHostApplicationLifetime applicationLifetime, ILogger <UnityHostLifetime> logger,
                          IOptions <HostOptions> hostOptions, IOpenModHost openModHost)
 {
     m_ApplicationLifetime = applicationLifetime;
     m_Logger        = logger;
     m_OpenModHost   = openModHost;
     m_HostOptions   = hostOptions.Value;
     m_ShutdownBlock = new ManualResetEvent(false);
 }
コード例 #14
0
 public static ProcessRunnerOptions FromHostOptions(HostOptions options)
 {
     return(new ProcessRunnerOptions
     {
         BuildProjects = !options.NoBuild,
         DebugMode = options.Debug.Any(),
         ServicesToDebug = options.Debug.ToArray(),
         DebugAllServices = options.Debug?.Contains("*", StringComparer.OrdinalIgnoreCase) ?? false
     });
 }
コード例 #15
0
ファイル: MyHostBuilder.cs プロジェクト: nielsf-dev/poc
    void Initialize(HostOptions hostOptions, IConfiguration configuration)
    {
        var timeoutSeconds = configuration["shutdownTimeoutSeconds"];

        if (!string.IsNullOrEmpty(timeoutSeconds) &&
            int.TryParse(timeoutSeconds, NumberStyles.None, CultureInfo.InvariantCulture, out var seconds))
        {
            hostOptions.ShutdownTimeout = TimeSpan.FromSeconds(seconds);
        }
    }
コード例 #16
0
        public TransportManager(HostOptions hostOptions, IEnumerable <IHostTransport> hostTransports)
        {
            LocalEndPoint   = hostOptions.LocalEndPoint;
            _hostTransports = hostTransports;

            foreach (var transport in _hostTransports)
            {
                _protocolToHostMapping.Add(transport.ProtocolType, transport);
            }
        }
コード例 #17
0
ファイル: Program.cs プロジェクト: esilantiev/BackEndService
        static void Main(string[] args)
        {
            var hostOptions = new HostOptions
            {
                ServiceName        = "IsesBackOfficeService",
                ServiceDisplayName = "Ises BackOffice Service"
            };

            HostHelper.RunHost <Loader>(hostOptions);
        }
コード例 #18
0
 public WindowsServiceLifetime(IHostEnvironment environment, IHostApplicationLifetime applicationLifetime, ILoggerFactory loggerFactory, IOptions <HostOptions> optionsAccessor)
 {
     Environment         = environment ?? throw new ArgumentNullException(nameof(environment));
     ApplicationLifetime = applicationLifetime ?? throw new ArgumentNullException(nameof(applicationLifetime));
     Logger = loggerFactory.CreateLogger("Microsoft.Hosting.Lifetime");
     if (optionsAccessor == null)
     {
         throw new ArgumentNullException(nameof(optionsAccessor));
     }
     _hostOptions = optionsAccessor.Value;
 }
コード例 #19
0
        public void UseDefault_HostOptions_ShutdownTimeout()
        {
            IHostBuilder hostBuilder = new HostBuilder();

            Assert.Same(hostBuilder, hostBuilder.UseCli(Array.Empty <string>()));
            IHost host = hostBuilder.Build();

            TimeSpan timeout = new HostOptions().ShutdownTimeout;
            IOptions <HostOptions> options = host.Services.GetRequiredService <IOptions <HostOptions> >();

            Assert.Equal(timeout, options.Value.ShutdownTimeout);
        }
コード例 #20
0
        /// <summary>
        /// 启用WebHost
        /// </summary>
        /// <param name="app"></param>
        /// <param name="hostOptions"></param>
        /// <param name="env"></param>
        /// <returns></returns>
        public static IApplicationBuilder UseWebHost(this IApplicationBuilder app, HostOptions hostOptions, IHostingEnvironment env)
        {
            //异常处理
            app.UseExceptionHandle();

            //加载模块
            app.UseModules(env);

            //设置默认文档
            var defaultFilesOptions = new DefaultFilesOptions();

            defaultFilesOptions.DefaultFileNames.Clear();
            defaultFilesOptions.DefaultFileNames.Add("index.html");
            app.UseDefaultFiles(defaultFilesOptions);

            app.UseDefaultPage();

            app.UseDocs();

            //反向代理
            if (hostOptions.Proxy)
            {
                app.UseForwardedHeaders(new ForwardedHeadersOptions
                {
                    ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
                });
            }

            //身份认证
            app.UseAuthentication();

            //CORS
            app.UseCors(builder =>
            {
                builder.AllowAnyOrigin();
                builder.AllowAnyMethod();
                builder.AllowAnyHeader();
                builder.AllowCredentials();

                //下载文件时,文件名称会保存在headers的Content-Disposition属性里面
                builder.WithExposedHeaders("Content-Disposition");
            });

            //开启Swagger
            if (hostOptions.Swagger || env.IsDevelopment())
            {
                app.UseCustomSwagger();
            }

            app.UseMvc();

            return(app);
        }
コード例 #21
0
ファイル: ServBuilder.cs プロジェクト: lanicon/ZYNet
        public IServBuilder ConfigureServHostAndPort(Action <HostOptions> config = null)
        {
            Container.Register <HostOptions>
                (p =>
            {
                var c = new HostOptions();
                config?.Invoke(c);
                return(c);
            }
                ).AsSelf().SingleInstance();

            return(this);
        }
コード例 #22
0
        static void HostGame(HostOptions h)
        {
            Console.WriteLine("Hosting a new game");
            DM = LoadEncounter();
            Console.WriteLine("Loaded encounter");

            var config = new NetPeerConfiguration("Shrinelands")
            {
                Port = Program.Port
            };

            peer = new NetServer(config);
            peer.Start();
            while (true)
            {
                NetIncomingMessage message;
                while ((message = peer.ReadMessage()) != null)
                {
                    switch (message.MessageType)
                    {
                    case NetIncomingMessageType.Data:
                        // handle custom messages
                        var data = message.ReadString();
                        if (data == "Send DM")
                        {
                            Console.WriteLine("Sending DM to client");
                            string json     = JsonConvert.SerializeObject(DM);
                            var    response = peer.CreateMessage("DM\n" + json);
                            peer.SendMessage(response, message.SenderConnection, NetDeliveryMethod.ReliableOrdered);
                        }
                        break;

                    case NetIncomingMessageType.StatusChanged:
                        // handle connection status messages
                        break;

                    case NetIncomingMessageType.DebugMessage:
                        // handle debug messages
                        // (only received when compiled in DEBUG mode)
                        Console.WriteLine(message.ReadString());
                        break;

                    /* .. */
                    default:
                        Console.WriteLine("unhandled message with type: "
                                          + message.MessageType);
                        break;
                    }
                }
            }
        }
コード例 #23
0
        protected StartupAbstract(IHostEnvironment env, IConfiguration cfg)
        {
            Env  = env;
            _cfg = cfg;

            //主机配置
            _hostOptions = new HostOptionsSetting();
            cfg.GetSection("Host").Bind(_hostOptions);

            if (_hostOptions.Urls.IsNull())
            {
                _hostOptions.Urls = "http://*:5000";
            }
        }
コード例 #24
0
        public WindowsServiceLifetime(IHostEnvironment environment, IHostApplicationLifetime applicationLifetime, ILoggerFactory loggerFactory, IOptions <HostOptions> optionsAccessor, IOptions <WindowsServiceLifetimeOptions> windowsServiceOptionsAccessor)
        {
            ThrowHelper.ThrowIfNull(environment);
            ThrowHelper.ThrowIfNull(applicationLifetime);
            ThrowHelper.ThrowIfNull(optionsAccessor);
            ThrowHelper.ThrowIfNull(windowsServiceOptionsAccessor);

            Environment         = environment;
            ApplicationLifetime = applicationLifetime;
            Logger       = loggerFactory.CreateLogger("Microsoft.Hosting.Lifetime");
            _hostOptions = optionsAccessor.Value;
            ServiceName  = windowsServiceOptionsAccessor.Value.ServiceName;
            CanShutdown  = true;
        }
コード例 #25
0
 public ClientHost(IServiceProvider services, IHostApplicationLifetime applicationLifetime, ILogger <ClientHost> logger, IHostLifetime hostLifetime, IOptions <HostOptions> options)
 {
     Guard.Throw.ArgumentNullException(services == null, nameof(services));
     Guard.Throw.ArgumentNullException(applicationLifetime == null, nameof(applicationLifetime));
     Guard.Throw.ArgumentNullException(logger == null, nameof(logger));
     Guard.Throw.ArgumentNullException(hostLifetime == null, nameof(hostLifetime));
     this.Services            = services;
     this.applicationLifetime = (ApplicationLifetime)applicationLifetime;
     this.logger         = logger;
     this.hostLifetime   = hostLifetime;
     this.hostedServices = this.Services.GetService <IEnumerable <IHostedService> >() ?? new Collection <IHostedService>();
     Guard.Throw.ArgumentNullException(options?.Value == null, nameof(options));
     this.options = options !.Value;
 }
コード例 #26
0
        public Server(HostOptions options)
        {
            _options = options;

            ServerLogic server = new ServerLogic();

            _logic = server;

            server.OnClientConnected    += OnClientConnected;
            server.OnClientDisconnected += OnClientDisconnected;
            server.OnTick    += OnTick;
            server.OnMessage += OnMessage;

            server.Start(_options.Port);
        }
コード例 #27
0
        public static void Main(string[] args)
        {
            /*
             * ForeignDevicePortOptions options = new ForeignDevicePortOptions()
             * {
             *  PortId = 1,
             *  BbmdHost = "<bbmd-ip-here>",
             *  BbmdPort = 47808,
             *  LocalHost = "0.0.0.0",
             *  LocalPort = 47808,
             *  RegistrationInterval = TimeSpan.FromSeconds(30)
             * };
             */

            EthernetPortOptions ethOptions = new EthernetPortOptions()
            {
                PortId = 1
            };

            PortManagerOptions portMgrOptions = new PortManagerOptions();
            RouterOptions      routerOpts     = new RouterOptions();

            routerOpts.PortNetworkMappings.Add(new KeyValuePair <byte, ushort>(1, 0));
            HostOptions         hostOpts   = new HostOptions();
            DeviceFinderOptions finderOpts = new DeviceFinderOptions();

            //using (ForeignDevicePort port = new ForeignDevicePort(options))
            using (EthernetPort port = new EthernetPort(ethOptions))
                using (PortManager manager = new PortManager(portMgrOptions))
                    using (Router router = new Router(routerOpts))
                        using (Host host = new Host(hostOpts))
                            using (DeviceFinder finder = new DeviceFinder(finderOpts))
                                using (Session session = new Session(port, manager, router, host, finder))
                                {
                                    var client = new BACnet.Client.Client(host);

                                    // as long as there is at least 1 new devices found every 10 seconds,
                                    // for each found device, read that devices name and print it to the console

                                    finder.Timeout(TimeSpan.FromSeconds(10))
                                    .Catch(Observable.Empty <DeviceTableEntry>())
                                    .ForEachAsync(entry =>
                                    {
                                        Console.WriteLine(entry.Instance);
                                    })
                                    .Wait();
                                }
        }
コード例 #28
0
 public Host(IServiceProvider serviceProvider,
             MessageCenter messageCenter,
             ClientCollection clientCollection,
             IEnumerable <IMiddleware> middleware,
             HostOptions hostOptions,
             ILogger logger)
 {
     ServiceProvider           = serviceProvider;
     _messageCenter            = messageCenter;
     _clientCollection         = clientCollection;
     _middleware               = middleware;
     _messageCenter.OnMessage += OnMessage;
     _messageCenter.OnClosed  += OnClosed;
     LocalEndPoint             = hostOptions.LocalEndPoint;
     _logger = logger.ForContext <Host>();
 }
コード例 #29
0
ファイル: SigningService.cs プロジェクト: nth-commit/DocGen
 public SigningService(
     ISigningKeyEncoder signingKeyEncoder,
     IDocumentExportsFactory documentExportsFactory,
     ITemplateRepository templateRepository,
     ISigningRequestRepository signingRequestRepository,
     ISignatureImageRepository signatureImageRepository,
     ISigningNotifier signingNotifier,
     IOptions <HostOptions> hostOptions)
 {
     _signingKeyEncoder        = signingKeyEncoder;
     _documentExportsFactory   = documentExportsFactory;
     _templateRepository       = templateRepository;
     _signingRequestRepository = signingRequestRepository;
     _signatureImageRepository = signatureImageRepository;
     _signingNotifier          = signingNotifier;
     _hostOptions = hostOptions.Value;
 }
コード例 #30
0
 public RegisterWithEtcdListener(EtcdClient client, BroadcastOptions broadcastOptions, HostOptions hostOptions)
 {
     if (client == null)
     {
         throw new ArgumentNullException(nameof(client));
     }
     if (broadcastOptions == null)
     {
         throw new ArgumentNullException(nameof(broadcastOptions));
     }
     if (hostOptions == null)
     {
         throw new ArgumentNullException(nameof(hostOptions));
     }
     _client           = client;
     _broadcastOptions = broadcastOptions;
     _hostOptions      = hostOptions;
 }