public static IWebHostBuilder UseServiceFabric(this IWebHostBuilder webHostBuilder)
        {
            Console.WriteLine("UseServiceFabric");

            if (webHostBuilder == null)
            {
                throw new ArgumentNullException(nameof(webHostBuilder));
            }

            IApplicationEnvironment application = PlatformServices.Default.Application;
            string serviceTypeName = AspNetCoreService.GetServiceTypeName(application);

            Console.WriteLine("UseServiceFabric - ServiceTypeName: " + serviceTypeName);
            Console.WriteLine("UseServiceFabric - ServerUrls: " + webHostBuilder.GetSetting(WebHostDefaults.ServerUrlsKey));

            if (webHostBuilder.GetSetting(WebHostDefaults.ServerUrlsKey) == null)
            {
                string endpointName = webHostBuilder.GetSetting("fabric.endpoint") ?? string.Format("{0}Endpoint", serviceTypeName);
                var    endpoint     = FabricRuntime.GetActivationContext().GetEndpoint(endpointName);

                string url = $"{endpoint.Protocol}://{FabricRuntime.GetNodeContext().IPAddressOrFQDN}:{endpoint.Port}";

                Console.WriteLine("UseServiceFabric - Assigning SF Url: " + url);

                webHostBuilder.UseUrls(url);
            }

            return(webHostBuilder);
        }
        public void Start()
        {
            Console.WriteLine("ServiceFabricWebHost: Start");

            var appEnv = PlatformServices.Default.Application;

            string serviceTypeName = AspNetCoreService.GetServiceTypeName(appEnv);

            _fabricRuntime.RegisterStatelessServiceFactory(serviceTypeName, new AspNetCoreServiceFactory(_webHost));
        }
        public Task StartAsync(CancellationToken cancellationToken = default(CancellationToken))
        {
            Console.WriteLine("ServiceFabricWebHost: StartAsync");

            string serviceTypeName = AspNetCoreService.GetServiceTypeName();

            _fabricRuntime.RegisterStatelessServiceFactory(serviceTypeName, new AspNetCoreServiceFactory(_webHost));

            return(Task.CompletedTask);
        }