Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
-
IHostedServiceUygulamalar
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:
-
CreateHostBuilderOluşturucu nesnesi oluşturmak ve yapılandırmak için bir yöntem çağırır. - Oluşturucu nesnesinde
BuildveRunyö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:
Konak yapılandırmasını aşağıdaki kaynaklardan yükler:
- Ön ekli ortam değişkenleri
DOTNET_ - Komut satırı argümanları
- Ön ekli ortam değişkenleri
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
Developmentkullanarak 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
Developmentolduğunda etkinleştirilir.
ConfigureWebHostDefaults yöntemi aşağıdaki görevleri gerçekleştirir:
Çevre değişkenlerinden
ASPNETCORE_ile başlayan konak yapılandırmasını yükler.Kestrel sunucusunu web sunucusu olarak ayarlar ve uygulamanın barındırma yapılandırma sağlayıcılarını kullanarak yapılandırır. Sunucunun Kestrel varsayılan seçenekleri için bkz . ASP.NET Core Kestrel web sunucusu için seçenekleri yapılandırma.
Ekler İletilen Üst Bilgiler ara yazılımını, eğer
ASPNETCORE_FORWARDEDHEADERS_ENABLEDözelliğitrueolarak ayarlandıysa.IIS tümleştirmesini etkinleştirir. IIS varsayılan seçenekleri için bkz ASP.NET Core'u Windows ile IIS'te barındırma.
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ı
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.
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));
}
}
}
İlgili içerik
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).
ASP.NET Core