ASP.NET Core'da .NET Genel Ana Bilgisayarı

Dikkat

Bu, bu makalenin en son sürümü değildir. Geçerli sürüm için bu makalenin .NET 10 sürümüne bakın.

Uyarı

ASP.NET Core'un bu sürümü artık desteklenmiyor. Daha fazla bilgi için bkz . .NET ve .NET Core Destek İlkesi. Geçerli sürüm için bu makalenin .NET 10 sürümüne bakın.

ASP.NET Core şablonları WebApplicationBuilder ve WebApplication örneklerini oluşturur. Bu nesneler, web uygulamalarını sınıf olmadan yapılandırmak ve çalıştırmak için kolaylaştırılmış bir Startup yol sağlar. ve hakkında daha fazla bilgi için bkz. WebApplicationBuilder.WebApplication

ASP.NET Core şablonları bir .NET Genel Konak (HostBuilder) örneği oluşturur.

Bu makale, ASP.NET Core'da .NET Genel Ana Bilgisayarı kullanma hakkında bilgi sağlar. Konsol uygulamalarında .NET Genel Ana Bilgisayarı kullanma hakkında bilgi için bkz . .NET Genel Ana Bilgisayarı.

Konağın rolünü anlama

Konak, bir uygulamanın kaynaklarını kapsülleyen bir nesnedir, örneğin:

  • Bağımlılık enjeksiyonu (DI)
  • Loglama
  • Yapılandırma
  • IHostedService Uygulamalar

Bir konak başlatıldığında, hizmet kapsayıcısında kayıtlı olan her bir StartAsync örnekteki IHostedService yöntemini çağırır. Bir web uygulamasında, uygulamalardan IHostedService biri HTTP sunucusu uygulamasını başlatan bir web hizmetidir.

Host, uygulamanın birbirine bağlı tüm kaynaklarını tek bir nesneye dahil ederek, uygulamayı başlatma ve düzgün bir şekilde kapatma kontrolünü sağlar.

Sunucu ayarlama

Ana bilgisayar genellikle Program.cs dosyasındaki kod tarafından yapılandırılır, oluşturulur ve çalıştırılır.

Aşağıdaki kod, DI kapsayıcısına bir uygulama eklenmiş bir IHostedService konak oluşturur:

await Host.CreateDefaultBuilder(args)
    .ConfigureServices(services =>
    {
        services.AddHostedService<SampleHostedService>();
    })
    .Build()
    .RunAsync();

HTTP iş yükü için, ConfigureWebHostDefaults yönteminden sonra CreateDefaultBuilder yöntemini çağırın.

await Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
    {
        webBuilder.UseStartup<Startup>();
    })
    .Build()
    .RunAsync();

Main yöntemi aşağıdaki görevleri gerçekleştirir:

  • CreateHostBuilder Oluşturucu nesnesi oluşturmak ve yapılandırmak için bir yöntem çağırır.
  • Oluşturucu nesnesinde Build ve Run yöntemlerini çağırır.

ASP.NET Core web şablonları bir .NET Genel Ana Bilgisayar örneği oluşturmak için aşağıdaki kodu oluşturur:

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });
}

Aşağıdaki kod, HTTP olmayan iş yükü kullanarak bir Genel Konak oluşturur. Uygulama IHostedService DI kapsayıcısına eklenir:

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureServices((hostContext, services) =>
            {
               services.AddHostedService<Worker>();
            });
}

HTTP iş yükü için ASP.NET Core şablonları aynı Main yöntemi oluşturur, ancak CreateHostBuilder yöntemi yöntemini çağırır ConfigureWebHostDefaults :

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        });

Uygulama Entity Framework Core kullanıyorsa yöntemin adını veya imzasını değiştirmeyin CreateHostBuilder . Entity Framework Core araçları, uygulamayı çalıştırmadan konağı yapılandıran bir CreateHostBuilder yöntem bulmayı bekler. Daha fazla bilgi için bkz Tasarım Zamanı DbContext Oluşturma.

Varsayılan oluşturucu ayarlarını yapılandırma

CreateDefaultBuilder yöntemi aşağıdaki görevleri gerçekleştirir:

  • İçerik kök dizinini tarafından döndürülen yola ayarlar.

  • Konak yapılandırmasını aşağıdaki kaynaklardan yükler:

    • Ön ekli ortam değişkenleri DOTNET_
    • Komut satırı argümanları
  • Uygulama yapılandırmasını aşağıdaki sırayla yükler:

    • appsettings.json dosyası
    • Appsettings. {Environment}.json dosyası
    • Kullanıcı sırları (Uygulama çalışma ortamında Development kullanarak giriş derlemesi ile çalıştırıldığında yüklenir.)
    • Ortam değişkenleri
    • Komut satırı argümanları
  • Aşağıdaki loglama sağlayıcılarını ekler:

    • Konsol
    • Debug
    • Olay Kaynağı
    • EventLog (yalnızca Windows üzerinde çalışırken)
  • kapsam doğrulaması ve bağımlılık doğrulaması, ortam Development olduğunda etkinleştirilir.

ConfigureWebHostDefaults yöntemi aşağıdaki görevleri gerçekleştirir:

Varsayılan oluşturucu ayarlarını geçersiz kılma hakkında bilgi için, bu makalenin devamında Tüm uygulama türleri için ayarları yapılandırma ve Web uygulamaları için ayarları yapılandırma konularına bakın.

Çerçeve tarafından sağlanan hizmetler

.NET Genel Ana Bilgisayarı aşağıdaki hizmetleri otomatik olarak kaydeder:

Çerçeve tarafından sağlanan hizmetler hakkında daha fazla bilgi için bkz ASP.NET Core'da bağımlılık enjeksiyonu.

IHostApplicationLifetime

IHostApplicationLifetime hizmetini (eski adıyla IApplicationLifetime) başlatma sonrası ve düzgün kapatma görevlerini yönetmek için herhangi bir sınıfa enjekte edin. Arabirimdeki üç özellik, uygulama başlatma ve uygulama durdurma olay işleyicisi yöntemlerini kaydetmek için kullanılan iptal belirteçleridir. Arabirim ayrıca uygulamaların düzgün bir şekilde kapatma isteğinde bulunmalarını sağlayan bir StopApplication yöntem de içerir.

Zarif bir durdurma gerçekleştirirken konak:

  • ApplicationStopping Uygulamanın kapatma işlemi başlamadan önce mantık çalıştırmasını sağlayan olay işleyicilerini tetikler.

  • Sunucuyu durdurur ve bu da yeni bağlantıları devre dışı bırakır. Sunucu, kapatma zaman aşımına izin verdiği sürece mevcut bağlantılardaki isteklerin tamamlanmasını bekler. Sunucu, var olan bağlantılar üzerinde yapılacak ek istekler için bağlantı kapatma başlığını gönderir.

  • ApplicationStopped Uygulama kapatıldıktan sonra uygulamanın mantık çalıştırmasını sağlayan olay işleyicilerini tetikler.

Aşağıdaki örnek, olay işleyicilerini IHostedService kaydeden bir IHostApplicationLifetime uygulamadır:

public class HostApplicationLifetimeEventsHostedService : IHostedService
{
    private readonly IHostApplicationLifetime _hostApplicationLifetime;

    public HostApplicationLifetimeEventsHostedService(
        IHostApplicationLifetime hostApplicationLifetime)
        => _hostApplicationLifetime = hostApplicationLifetime;

    public Task StartAsync(CancellationToken cancellationToken)
    {
        _hostApplicationLifetime.ApplicationStarted.Register(OnStarted);
        _hostApplicationLifetime.ApplicationStopping.Register(OnStopping);
        _hostApplicationLifetime.ApplicationStopped.Register(OnStopped);

        return Task.CompletedTask;
    }

    public Task StopAsync(CancellationToken cancellationToken)
        => Task.CompletedTask;

    private void OnStarted()
    {
        // ...
    }

    private void OnStopping()
    {
        // ...
    }

    private void OnStopped()
    {
        // ...
    }
}
internal class LifetimeEventsHostedService : IHostedService
{
    private readonly ILogger _logger;
    private readonly IHostApplicationLifetime _appLifetime;

    public LifetimeEventsHostedService(
        ILogger<LifetimeEventsHostedService> logger, 
        IHostApplicationLifetime appLifetime)
    {
        _logger = logger;
        _appLifetime = appLifetime;
    }

    public Task StartAsync(CancellationToken cancellationToken)
    {
        _appLifetime.ApplicationStarted.Register(OnStarted);
        _appLifetime.ApplicationStopping.Register(OnStopping);
        _appLifetime.ApplicationStopped.Register(OnStopped);

        return Task.CompletedTask;
    }

    public Task StopAsync(CancellationToken cancellationToken)
    {
        return Task.CompletedTask;
    }

    private void OnStarted()
    {
        _logger.LogInformation("OnStarted has been called.");

        // Perform post-startup activities here
    }

    private void OnStopping()
    {
        _logger.LogInformation("OnStopping has been called.");

        // Perform on-stopping activities here
    }

    private void OnStopped()
    {
        _logger.LogInformation("OnStopped has been called.");

        // Perform post-stopped activities here
    }
}

IHostLifetime

Uygulama, IHostLifetime konağın ne zaman başlayacağını ve ne zaman duracağını kontrol eder. Kaydedilen son uygulama kullanılır.

Microsoft.Extensions.Hosting.Internal.ConsoleLifetime varsayılan IHostLifetime uygulamadır.

ConsoleLifetime yöntemi aşağıdaki görevleri gerçekleştirir:

  • Ctrl+C/SIGINT (Windows), Ctrl+C (macOS) veya SIGTERM'yi dinler ve kapatma işlemini başlatan öğesini çağırırStopApplication.

  • RunAsync ve WaitForShutdownAsync yöntemlerinin çalıştırılması gibi uzantıların engelini kaldırır.

IHostEnvironment (IWebHostEnvironment)

IHostEnvironment Aşağıdaki ayarlar hakkında bilgi almak için hizmeti bir sınıfa ekleyin:

Web uygulamaları, IWebHostEnvironment arabirimini uygulayarak IHostEnvironment'den devralır ve WebRootPath ekler.

Ana bilgisayar yapılandırmasını ayarlayın

Ana bilgisayar yapılandırması, IHostEnvironment uygulamasının özellikleri için kullanılır.

Konak yapılandırmasına, Configuration yöntemi içindeki ConfigureAppConfiguration özelliğinden erişilebilir. ConfigureAppConfiguration'nin ardındanHostBuilderContext.Configuration, uygulama yapılandırmasıyla değiştirilir.

Konak yapılandırması eklemek için ConfigureHostConfiguration örneğinde IHostBuilder yöntemini çağırın. ConfigureHostConfiguration eklenebilir sonuçlarla birden çok kez çağrılabilir. Ana bilgisayar, belirli bir anahtarda en son değeri ayarlayan hangi seçeneği kullanır.

CreateDefaultBuilder , ortam değişkeni sağlayıcısını, DOTNET_ ön eki ile ve komut satırı bağımsız değişkenleriyle içerir. Web uygulamaları için, ön ekli ASPNETCORE_ ortam değişkeni sağlayıcısı eklenir. Ortam değişkenleri okunduğunda ön ek kaldırılır. Örneğin, ASPNETCORE_ENVIRONMENT için ortam değişkeni değeri environment anahtarının konak yapılandırma değeri olur.

Aşağıdaki örnek konak yapılandırması oluşturur:

Host.CreateDefaultBuilder(args)
    .ConfigureHostConfiguration(hostConfig =>
    {
        hostConfig.SetBasePath(Directory.GetCurrentDirectory());
        hostConfig.AddJsonFile("hostsettings.json", optional: true);
        hostConfig.AddEnvironmentVariables(prefix: "PREFIX_");
        hostConfig.AddCommandLine(args);
    });
// using Microsoft.Extensions.Configuration;

Host.CreateDefaultBuilder(args)
    .ConfigureHostConfiguration(configHost =>
    {
        configHost.SetBasePath(Directory.GetCurrentDirectory());
        configHost.AddJsonFile("hostsettings.json", optional: true);
        configHost.AddEnvironmentVariables(prefix: "PREFIX_");
        configHost.AddCommandLine(args);
    });

Uygulama yapılandırmasını oluşturma

Uygulama yapılandırması, örnekte yöntemini ConfigureAppConfigurationIHostBuilder çağırarak oluşturulur. ConfigureAppConfiguration eklenebilir sonuçlarla birden çok kez çağrılabilir. Uygulama, belirli bir anahtarda en son değer ayarlayan seçeneği kullanır.

c0 tarafından oluşturulan yapılandırma, sonraki işlemler için ve DI tarafından bir hizmet olarak kullanılmak üzere c1 özelliğinde mevcuttur. Sunucu yapılandırması, uygulama yapılandırmasına da eklenir.

Daha fazla bilgi için, bkz. ASP.NET Core’da yapılandırma analizi.

Tüm uygulama türleri için ayarları yapılandırma

Bu bölümde hem HTTP hem de HTTP olmayan iş yüklerine uygulanan konak ayarları listelenir.

Varsayılan olarak, bu ayarları yapılandırmak için kullanılan ortam değişkenleri DOTNET_ veya ASPNETCORE_ ön eki ile başlayabilir ve bu önekler, aşağıdaki ayarlar listesinde {PREFIX_} yer tutucu olarak görünür.

Daha fazla bilgi için bkz . Varsayılan oluşturucu ayarlarını yapılandırma ve Yapılandırma: Ortam değişkenleri.

Uygulama adı

Uygulamanın giriş noktasını içeren derlemenin adını tanımlar.

Anahtar: applicationName
Tür: dize
Varsayılan: Uygulama giriş noktasını içeren derlemenin adı.
Kullanılarak ayarlanır: Ortam değişkeni
Ortam değişkeni: {PREFIX_}APPLICATIONNAME

ApplicationName Özellik, konak oluşturma sırasında konak yapılandırmasından ayarlanır.

İçerik kökü

Sunucunun içerik dosyalarını aramaya nereden başladığını belirler.

Anahtar: contentRoot
Tür: dize
Varsayılan: Uygulama derlemesinin bulunduğu klasör.
Ayarlanabilir: Çevre değişkeni veya UseContentRoot üzerinde IHostBuilder
Ortam değişkeni: {PREFIX_}CONTENTROOT

ContentRootPath özelliği, konak aramaya nereden başlayacağını tanımlar. Eğer dosya yolu yoksa, sunucu başlatılamaz.

Host.CreateDefaultBuilder(args)
    .UseContentRoot("/path/to/content/root")
    // ...
Host.CreateDefaultBuilder(args)
    .UseContentRoot("c:\\content-root")
    //...

Daha fazla bilgi için bkz.

Ortam adı

Ortam için bir ad sağlar.

Anahtar: environment
Tür: dize
Varsayılan: Production
Ayarlama yöntemi: Ortam değişkeni veya çağrı üzerinde
Ortam değişkeni: {PREFIX_}ENVIRONMENT

EnvironmentName özelliği herhangi bir değere ayarlanabilir. Çerçeve tanımlı değerler , Developmentve Stagingdeğerlerini içerirProduction. Değerler büyük/küçük harfe duyarlı değildir.

Host.CreateDefaultBuilder(args)
    .UseEnvironment("Development")
    // ...
Host.CreateDefaultBuilder(args)
    .UseEnvironment("Development")
    //...

Kapatma zaman aşımı

Konağın kapatılmasını bekleme süresini belirtir.

Anahtar: shutdownTimeoutSeconds
Tür: int
Varsayılan: 30 saniye (.NET 5.0 ve önceki sürümlerinde varsayılan değer 5 saniyedir.)
Kullanarak ayarlama: Ortam değişkeni veya HostOptions
Ortam değişkeni: {PREFIX_}SHUTDOWNTIMEOUTSECONDS

ShutdownTimeout özelliği zaman aşımını StopAsync için ayarlar. Varsayılan değer 30 saniyedir.

Zaman aşımı süresi boyunca sunucu:

  • Tetikleyiciler ApplicationStopping.
  • Barındırılan hizmetleri durdurma girişimi, durdurulamayan hizmetler için hataları günlüğe kaydetme.

Tüm barındırılan hizmetler durdurulmadan önce zaman aşımı süresi dolarsa, uygulama kapatıldığında kalan tüm etkin hizmetler durur. İşlemler devam ediyor olsa bile hizmetler durduruluyor. Hizmetlerin durdurulması için daha fazla zaman gerekiyorsa zaman aşımını artırın.

Aşağıdaki örnek zaman aşımını 20 saniye olarak ayarlar:

Host.CreateDefaultBuilder(args)
    .ConfigureServices((hostContext, services) =>
    {
        services.Configure<HostOptions>(options =>
        {
            options.ShutdownTimeout = TimeSpan.FromSeconds(20);
        });
    });
Host.CreateDefaultBuilder(args)
    .ConfigureServices((hostContext, services) =>
    {
        services.Configure<HostOptions>(option =>
        {
            option.ShutdownTimeout = System.TimeSpan.FromSeconds(20);
        });
    });

Yapılandırmayı değişiklik olduğunda yeniden yükle

appsettings.json ve appsettings.{Ortam}.json dosyaları değiştiğinde yeniden yükler. Varsayılan uygulama yapılandırma kaynakları'nda açıklandığı gibi bu davranış varsayılan olarakdır.

Anahtar: hostBuilder:reloadConfigOnChange
Tür: bool (true veya false)
Varsayılan: true
Kullanarak ayarla: Komut satırı bağımsız değişkeni hostBuilder:reloadConfigOnChange
Ortam değişkeni: {PREFIX_}hostBuilder:reloadConfigOnChange

.NET 5 ve sonraki sürümlerinde, bağımsız değişkenini hostBuilder:reloadConfigOnChange ayarlayarak false yeniden yükleme davranışını devre dışı bırakabilirsiniz.

Uyarı

Üst üste iki nokta (:) ayırıcısı, her platformda ortam değişkeni hiyerarşik anahtarları ile çalışmaz. Daha fazla bilgi için bkz . Ortam değişkenleri.

Web uygulamaları için ayarları yapılandırma

Bazı konak ayarları yalnızca HTTP iş yükleri için geçerlidir. Varsayılan olarak, bu ayarları yapılandırmak için kullanılan ortam değişkenleri DOTNET_ veya ASPNETCORE_ ön eki ile başlayabilir ve bu önekler, aşağıdaki ayarlar listesinde {PREFIX_} yer tutucu olarak görünür.

Üzerindeki IWebHostBuilder uzantı yöntemleri bu ayarlar için kullanılabilir. Uzantı yöntemlerinin nasıl çağrıldığını gösteren kod örnekleri, aşağıdaki örnekte olduğu gibi, webBuilder öğesinin IWebHostBuilder türünde bir örneği olduğunu varsayar.

Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
    {
        // ...
    });
public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.CaptureStartupErrors(true);
            webBuilder.UseStartup<Startup>();
        });

Başlangıç hatalarını yakalama

Başlangıç hatalarının yakalanmasını denetler.

Anahtar: captureStartupErrors
Tür: bool (true/1 veya false/0)
Varsayılan: false. Uygulama IIS arkasında ile Kestrel çalışıyorsa, varsayılan değer olur true.
Kullanarak ayarla: Yapılandırma veya CaptureStartupErrors
Ortam değişkeni: {PREFIX_}CAPTURESTARTUPERRORS

olduğunda false, başlangıç sırasındaki hatalar konağın çıkmasına neden olur. gerçekleştiğinde, konak başlatma sırasında istisnaları yakalar ve sunucuyu başlatmayı dener.

webBuilder.CaptureStartupErrors(true);
webBuilder.CaptureStartupErrors(true);

Ayrıntılı hatalar

Ayrıntılı hataların yakalanıp yakalanmayacağını belirler.

Anahtar: detailedErrors
Tür: bool (true/1 veya false/0)
Varsayılan: false
Kullanarak ayarla: Yapılandırma veya UseSetting
Ortam değişkeni: {PREFIX_}DETAILEDERRORS

Etkinleştirildiğinde veya ortam olarak Developmentayarlandığında uygulama ayrıntılı hataları yakalar.

webBuilder.UseSetting(WebHostDefaults.DetailedErrorsKey, "true");
webBuilder.UseSetting(WebHostDefaults.DetailedErrorsKey, "true");

Yeni girişim toplantılarını barındırma

Başlangıçta yüklenecek barındırma derlemelerini noktalı virgülle ayrılmış bir dize olarak sağlar.

Anahtar: hostingStartupAssemblies
Tür: dize
Varsayılan: Boş dize
Şu şekilde ayarlayın: UseSetting
Ortam değişkeni: {PREFIX_}HOSTINGSTARTUPASSEMBLIES

Yapılandırma değeri varsayılan olarak boş bir dize olsa da, barındırma başlangıç derlemeleri her zaman uygulamanın derlemesini içerir. Barındırma başlangıç derlemeleri sağlanırken, uygulama başlatma sırasında ortak hizmetlerini oluştururken yüklenmek üzere uygulamanın derlemesine eklenirler.

webBuilder.UseSetting(
    WebHostDefaults.HostingStartupAssembliesKey, "assembly1;assembly2");
webBuilder.UseSetting(WebHostDefaults.HostingStartupAssembliesKey, "assembly1;assembly2");

Barındırma başlatma sırasında derlemeleri hariç tutma

Başlangıçta hariç tutulacak başlangıç derlemelerini barındıran, noktalı virgüllerle ayrılmış bir dize sağlar.

Anahtar: hostingStartupExcludeAssemblies
Tür: dize
Varsayılan: Boş dize
Kullanarak ayarla: Yapılandırma veya UseSetting
Ortam değişkeni: {PREFIX_}HOSTINGSTARTUPEXCLUDEASSEMBLIES

webBuilder.UseSetting(
    WebHostDefaults.HostingStartupExcludeAssembliesKey, "assembly1;assembly2");
webBuilder.UseSetting(WebHostDefaults.HostingStartupExcludeAssembliesKey, "assembly1;assembly2");

HTTPS bağlantı noktası

HTTPS olmayan bir bağlantı alırsanız yeniden yönlendirme için HTTPS bağlantı noktasını ayarlar.

Anahtar: https_port
Tür: dize
Varsayılan: Varsayılan yoktur.
Kullanarak ayarla: Yapılandırma veya UseSetting
Ortam değişkeni: {PREFIX_}HTTPS_PORT

Bu ayar HTTPS'yi zorunlu tutmada kullanılır. Bu ayar sunucunun belirtilen bağlantı noktasını dinlemesine neden olmaz. Başka bir ifadeyle istekleri yanlışlıkla kullanılmayan bir bağlantı noktasına yönlendirebilirsiniz.

webBuilder.UseSetting("https_port", "8080");
webBuilder.UseSetting("https_port", "8080");

HTTPS bağlantı noktaları

HTTPS bağlantıları için dinlenecek olası bağlantı noktalarını belirtir.

Anahtar: https_ports
Tür: dize
Varsayılan: Varsayılan yoktur.
Kullanarak ayarla: Yapılandırma veya UseSetting
Ortam değişkeni: {PREFIX_}HTTPS_PORTS

webBuilder.UseSetting("https_ports", "8080");

Barındırma URL'lerini tercih edin

Konağın IWebHostBuilder uygulamasıyla yapılandırılmış URL'ler yerine IServer ile yapılandırılan URL'leri dinlemesi gerekip gerekmediğini belirtir.

Anahtar: preferHostingUrls
Tür: bool (true/1 veya false/0)
Varsayılan: false
Kullanarak ayarlama: Ortam değişkeni veya PreferHostingUrls
Ortam değişkeni: {PREFIX_}PREFERHOSTINGURLS

webBuilder.PreferHostingUrls(true);
webBuilder.PreferHostingUrls(true);

Barındırma başlatımını önleme

Uygulama tarafından yapılandırılan barındırma başlangıç derlemeleri de dahil olmak üzere, barındırma başlangıç derlemelerinin otomatik yüklenmesini engeller. Daha fazla bilgi için, bkz. ASP.NET Core'da barındırma başlangıç derlemelerini kullanma.

Anahtar: preventHostingStartup
Tür: bool (true/1 veya false/0)
Varsayılan: false
Kullanarak ayarlama: Ortam değişkeni veya UseSetting
Ortam değişkeni: {PREFIX_}PREVENTHOSTINGSTARTUP

webBuilder.UseSetting(WebHostDefaults.PreventHostingStartupKey, "true");
webBuilder.UseSetting(WebHostDefaults.PreventHostingStartupKey, "true");

Başlangıç derlemesi

Aranacak Startup sınıfının bulunduğu derlemeyi belirtir.

Anahtar: startupAssembly
Tür: dize
Varsayılan: Uygulama derlemesi.
Kullanarak ayarlama: Ortam değişkeni veya UseStartup
Ortam değişkeni: {PREFIX_}STARTUPASSEMBLY

Derlemeye ada () veya türe (stringTStartup) göre başvurabilirsiniz. Birden çok UseStartup yöntem çağrılırsa, son çağrı önceliklidir.

webBuilder.UseStartup("StartupAssemblyName");
webBuilder.UseStartup<Startup>();
webBuilder.UseStartup("StartupAssemblyName");
webBuilder.UseStartup<Startup>();

Durum iletilerini gizleme

Barındırma başlatma durumu iletilerinin gizlenip gizlenmeyeceğini gösterir.

Anahtar: suppressStatusMessages
Tür: bool (true/1 veya false/0)
Varsayılan: false
Kullanarak ayarla: Yapılandırma veya UseSetting
Ortam değişkeni: {PREFIX_}SUPPRESSSTATUSMESSAGES

webBuilder.UseSetting(WebHostDefaults.SuppressStatusMessagesKey, "true");
webBuilder.UseSetting(WebHostDefaults.SuppressStatusMessagesKey, "true");

Sunucu URL'leri

Sunucunun istekler için dinleyeceği IP adreslerini veya konak adreslerini, bağlantı noktalarını ve protokolleri gösterir.

Anahtar: urls
Tür: dize
Varsayılan: http://localhost:5000 ve https://localhost:5001
Kullanarak ayarlama: Ortam değişkeni veya UseUrls
Ortam değişkeni: {PREFIX_}URLS

Sunucunun yanıt vermesi gereken URL ön eklerinin noktalı virgülle ayrılmış ; bir listesine ayarlayın. Örneğin, http://localhost:123. Sunucunun belirtilen bağlantı noktası ve protokolü kullanarak herhangi bir IP adresi veya ana bilgisayar adı üzerindeki istekleri dinlemesi gerektiğini belirtmek için joker karakter yıldız * işareti kullanın (örneğin, http://*:5000). Protokol (http:// veya https://) her URL'ye eklenmelidir. Desteklenen biçimler sunucular arasında farklılık gösterir.

webBuilder.UseUrls("http://*:5000;http://localhost:5001;https://hostname:5002");
webBuilder.UseUrls("http://*:5000;http://localhost:5001;https://hostname:5002");

Kestrel kendi uç nokta yapılandırma API'sine sahiptir. Daha fazla bilgi için bkz. Web sunucusu için Kestrel uç noktaları yapılandırma.

Web kökü

Uygulamanın statik varlıklarının göreli yolunu ayarlar.

Anahtar: webroot
Tür: dize
Varsayılan: wwwroot
Ayarlanabilir: Çevre değişkeni veya UseWebRoot üzerinde IWebHostBuilder
Ortam değişkeni: {PREFIX_}WEBROOT

Bu WebRootPath özelliği, uygulamanın statik dosyalarının göreli yolunu belirler.

{content root}/wwwroot yolun mevcut olması gerekir. Yol yoksa, işlemsiz bir dosya sağlayıcısı kullanılır.

webBuilder.UseWebRoot("public");
webBuilder.UseWebRoot("public");

Daha fazla bilgi için bkz.

Konak ömrünü yönetme

Uygulamayı başlatmak ve durdurmak için uygulamadaki yöntemleri çağırın IHost . Yöntemler, hizmet kapsayıcısında kayıtlı tüm IHostedService uygulamaları etkiler.

Run* ve Start* yöntemleri arasındaki fark, Run* yöntemlerinin döndürmeden önce konağın tamamlanmasını beklemesi, Start* yöntemlerinin ise hemen döndürmesidir. Yöntemler Run* genellikle konsol uygulamalarında kullanılırken Start* , yöntemler genellikle uzun süre çalışan hizmetlerde kullanılır.

Çalıştır

Run yöntemi uygulamayı çalıştırır ve ana bilgisayar kapanana kadar çağıran iş parçacığını durdurur.

RunAsync

RunAsync yöntemi uygulamayı çalıştırır ve iptal belirteci veya kapatma tetiklendiğinde tamamlanan bir Task nesne döndürür.

RunConsoleAsync

RunConsoleAsync yöntemi konsol desteğini etkinleştirir, konağı derler ve başlatır ve Ctrl+/SIGINT (Windows), Ctrl+C (macOS) veya SIGTERM'nin kapatılmasını bekler.

Başlangıç

yöntemi konağı Start zaman uyumlu olarak başlatır.

StartAsync

StartAsync yöntemi konağı başlatır ve iptal belirteci veya kapatma tetiklendiğinde tamamlanan bir Task nesne döndürür.

WaitForStartAsync yöntemi, StartAsync işleminin başında çağrılır ve tamamlanana kadar bekler, ardından devam eder. Bu yöntem, bir dış olay tarafından sinyal alınana kadar başlatmayı geciktirmek için kullanılabilir.

StopAsync

StopAsync yöntemi, sağlanan zaman aşımı içinde konağı durdurmaya çabalar.

KapanmayıBekle

WaitForShutdown yöntemi, IHostLifetime uygulaması Ctrl C/SIGINT (Windows), Ctrl C (macOS) veya SIGTERM aracılığıyla kapatmayı tetikleyene kadar çağıran iş parçacığını durdurur.

WaitForShutdownAsync

WaitForShutdownAsync yöntemi, verilen token aracılığıyla kapatma tetiklendiğinde tamamlanan bir Task nesnesi döndürür ve ardından StopAsync yöntemini çağırır.

Ana bilgisayar süresini kontrol etme

Aşağıdaki yöntemleri harici olarak çağırarak konak ömrüyle ilgili doğrudan denetim gerçekleştirebilirsiniz:

public class Program
{
    private IHost _host;

    public Program()
    {
        _host = new HostBuilder()
            .Build();
    }

    public async Task StartAsync()
    {
        _host.StartAsync();
    }

    public async Task StopAsync()
    {
        using (_host)
        {
            await _host.StopAsync(TimeSpan.FromSeconds(5));
        }
    }
}

Dikkat

.NET başvuru kaynağına yönelik belge bağlantıları genellikle deponun varsayılan dalını yükler ve bu dal .NET'in sonraki sürümü için geçerli geliştirmeyi temsil eder. Belirli bir sürümün etiketini seçmek için Dalları veya etiketleri değiştir açılan listesini kullanın. Daha fazla bilgi için bkz. ASP.NET Core kaynak kodunun sürüm etiketini seçme (dotnet/AspNetCore.Docs #26205).