ASP.NET Core barındırma ve dağıtma

Genel olarak, bir ASP.NET Core uygulamasını barındırma ortamına dağıtmak için:

  • Yayımlanan uygulamayı barındırma sunucusundaki bir klasöre dağıtın.
  • İstekler geldiğinde uygulamayı başlatan ve kilitlendiğinde veya sunucu yeniden başlatıldıktan sonra uygulamayı yeniden başlatan bir işlem yöneticisi ayarlayın.
  • Ters ara sunucu yapılandırması için istekleri uygulamaya iletmek üzere ters ara sunucu ayarlayın.

Klasöre yayımlama

dotnet publish komutu, uygulama kodunu derler ve uygulamayı çalıştırmak için gereken dosyaları bir yayımlama klasörüne kopyalar. Visual Studio'dan dağıtım yapılırken, dosyalar dağıtım hedefine kopyalanmadan önce dotnet publish adımı otomatik olarak gerçekleşir.

Yayımlanan uygulamayı yerel olarak çalıştırma

Yayımlanan uygulamayı yerel olarak çalıştırmak için yayımlama klasöründen komutunu çalıştırındotnet <ApplicationName>.dll.

Yayımlama ayarı dosyaları

*.json dosyaları varsayılan olarak yayımlanır. Diğer ayar dosyalarını yayımlamak için bunları proje dosyasındaki bir <ItemGroup><Content Include= ... /> öğesinde belirtin. Aşağıdaki örnek XML dosyalarını yayımlar:

<ItemGroup>
  <Content Include="**\*.xml" Exclude="bin\**\*;obj\**\*"
    CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>

Klasör içeriği

Yayımlama klasörü bir veya daha fazla uygulama derleme dosyası, bağımlılık ve isteğe bağlı olarak .NET çalışma zamanı içerir.

.NET Core uygulaması kendi içinde dağıtım veya çerçeveye bağımlı dağıtım olarak yayımlanabilir. Uygulama kendi içindeyse, .NET çalışma zamanını içeren derleme dosyaları yayımlama klasörüne eklenir. Uygulama çerçeveye bağımlıysa, uygulamanın sunucuda yüklü olan bir .NET sürümüne başvurusu olduğundan .NET çalışma zamanı dosyaları dahil değildir. Varsayılan dağıtım modeli çerçeveye bağlıdır. Daha fazla bilgi için bkz. .NET Core uygulama dağıtma.

.exe ve .dll dosyalarına ek olarak, bir ASP.NET Core uygulamasının yayımlama klasörü genellikle yapılandırma dosyalarını, statik varlıkları ve MVC görünümlerini içerir. Daha fazla bilgi için, bkz. ASP.NET Core dizin yapısı.

İşlem yöneticisi ayarlama

ASP.NET Core uygulaması, bir sunucu kilitlendiğinde önyükleme ve yeniden başlatma sırasında başlatılması gereken bir konsol uygulamasıdır. Başlatma ve yeniden başlatma işlemlerini otomatikleştirmek için bir işlem yöneticisi gerekir. ASP.NET Core için en yaygın süreç yöneticileri şunlardır:

Bir ters ara sunucu ayarlama

Uygulama Kestrel sunucusunu kullanıyorsa, Nginx, Apache veya IIS ters ara sunucu olarak kullanılabilir. Ters ara sunucu İnternet'ten HTTP istekleri alır ve bunları Kestrel adresine iletir.

Her iki yapılandırma da (ters ara sunucu varken veya yokken) desteklenen bir barındırma yapılandırmasıdır. Daha fazla bilgi için, bkz. Ters ara sunucusuyla Kestrel ne zaman kullanılır.

Her iki yapılandırma da (ters ara sunucu varken veya yokken) desteklenen bir barındırma yapılandırmasıdır. Daha fazla bilgi için, bkz. Ters ara sunucusuyla Kestrel ne zaman kullanılır.

Ara sunucu ve yük dengeleyici senaryoları

Ara sunucuların ve yük dengeleyicilerin arkasında barındırılan uygulamalar için ek yapılandırma gerekebilir. Ek yapılandırma olmadan, bir uygulamanın düzene (HTTP/HTTPS) ve isteğin kaynaklandığı uzak IP adresine erişimi olmayabilir. Daha fazla bilgi için bkz. ASP.NET Core'u ara sunucular ve yük dengeleyicilerle çalışacak şekilde yapılandırma.

Dağıtımları otomatikleştirmek için Visual Studio ve MSBuild kullanma

Dağıtım için genellikle, dotnet publish çıkışının sunucuya kopyalanmasının yanı sıra ek görevler gerekir. Örneğin, ek dosyalar gerekli olabilir veya yayımlama klasöründen dışlanabilir. Visual Studio, web dağıtımı için MSBuild kullanır ve MSBuild dağıtım sırasında diğer birçok görevi yerine getirmek üzere özelleştirilebilir. Daha fazla bilgi için, bkz. ASP.NET Core uygulama dağıtımı için Visual Studio yayımlama profilleri (.pubxml) ve MSBuild ve Team Foundation Derlemesini Kullanma kitabı.

Yayımlama Web özelliği uygulamaları kullanılarak doğrudan Visual Studio'dan Azure App Service dağıtılabilir. Azure DevOps Services, Azure App Service için sürekli dağıtımı destekler. Daha fazla bilgi için, bkz. ASP.NET Core Geliştiricileri için DevOps.

Azure'a Yayımlama

Visual Studio kullanarak Azure'da uygulama yayımlama yönergeleri için bkz. Visual Studio ile Azure'da ASP.NET Core uygulaması yayımlama. Ek bir örnek, Azure'da ASP.NET Core web uygulaması oluşturma tarafından sağlanır.

Windows'da MSDeploy ile yayımlama

Dotnet msbuild komutunu kullanan bir Windows komut isteminden de dahil olmak üzere Visual Studio yayımlama profiliyle uygulama yayımlama yönergeleri için, bkz. ASP.NET Core uygulama dağıtımı için Visual Studio yayımlama profilleri (.pubxml).

Internet Information Services (IIS)

web.config dosyası tarafından sağlanan yapılandırmayla Internet Information Services'e (IIS) yapılan dağıtımlar için, IIS ile Windows'da ASP.NET Core Barındırma altındaki makalelere bakın.

Web grubunda barındırma

ASP.NET Core uygulamalarını bir web grubu ortamında barındırma yapılandırması (örneğin, ölçeklenebilirlik için uygulamanızın birden çok örneğinin dağıtımı) hakkında bilgi için bkz. Web grubunda ASP.NET Core barındırma.

Docker'da Barındırma

Daha fazla bilgi için, bkz. Docker kapsayıcılarında ASP.NET Core barındırma.

Sistem durumu denetimleri gerçekleştirme

Bir uygulamada ve bağımlılıklarında sistem durumu denetimleri gerçekleştirmek için Sistem Durumu Denetimi Ara Yazılımını kullanın. Daha fazla bilgi için, bkz. ASP.NET Core sistem durumu denetimleri.

Ek kaynaklar

Genel olarak, bir ASP.NET Core uygulamasını barındırma ortamına dağıtmak için:

  • Yayımlanan uygulamayı barındırma sunucusundaki bir klasöre dağıtın.
  • İstekler geldiğinde uygulamayı başlatan ve kilitlendiğinde veya sunucu yeniden başlatıldıktan sonra uygulamayı yeniden başlatan bir işlem yöneticisi ayarlayın.
  • Ters ara sunucu yapılandırması için istekleri uygulamaya iletmek üzere ters ara sunucu ayarlayın.

Klasöre yayımlama

dotnet publish komutu, uygulama kodunu derler ve uygulamayı çalıştırmak için gereken dosyaları bir yayımlama klasörüne kopyalar. Visual Studio'dan dağıtım yapılırken, dosyalar dağıtım hedefine kopyalanmadan önce dotnet publish adımı otomatik olarak gerçekleşir.

Klasör içeriği

Yayımlama klasörü bir veya daha fazla uygulama derleme dosyası, bağımlılık ve isteğe bağlı olarak .NET çalışma zamanı içerir.

.NET Core uygulaması kendi içinde dağıtım veya çerçeveye bağımlı dağıtım olarak yayımlanabilir. Uygulama kendi içindeyse, .NET çalışma zamanını içeren derleme dosyaları yayımlama klasörüne eklenir. Uygulama çerçeveye bağımlıysa, uygulamanın sunucuda yüklü olan bir .NET sürümüne başvurusu olduğundan .NET çalışma zamanı dosyaları dahil değildir. Varsayılan dağıtım modeli çerçeveye bağlıdır. Daha fazla bilgi için bkz. .NET Core uygulama dağıtma.

.exe ve .dll dosyalarına ek olarak, bir ASP.NET Core uygulamasının yayımlama klasörü genellikle yapılandırma dosyalarını, statik varlıkları ve MVC görünümlerini içerir. Daha fazla bilgi için, bkz. ASP.NET Core dizin yapısı.

İşlem yöneticisi ayarlama

ASP.NET Core uygulaması, bir sunucu kilitlendiğinde önyükleme ve yeniden başlatma sırasında başlatılması gereken bir konsol uygulamasıdır. Başlatma ve yeniden başlatma işlemlerini otomatikleştirmek için bir işlem yöneticisi gerekir. ASP.NET Core için en yaygın süreç yöneticileri şunlardır:

Bir ters ara sunucu ayarlama

Uygulama Kestrel sunucusunu kullanıyorsa, Nginx, Apache veya IIS ters ara sunucu olarak kullanılabilir. Ters ara sunucu İnternet'ten HTTP istekleri alır ve bunları Kestrel adresine iletir.

Her iki yapılandırma da (ters ara sunucu varken veya yokken) desteklenen bir barındırma yapılandırmasıdır. Daha fazla bilgi için, bkz. Ters ara sunucusuyla Kestrel ne zaman kullanılır.

Ara sunucu ve yük dengeleyici senaryoları

Ara sunucuların ve yük dengeleyicilerin arkasında barındırılan uygulamalar için ek yapılandırma gerekebilir. Ek yapılandırma olmadan, bir uygulamanın düzene (HTTP/HTTPS) ve isteğin kaynaklandığı uzak IP adresine erişimi olmayabilir. Daha fazla bilgi için bkz. ASP.NET Core'u ara sunucular ve yük dengeleyicilerle çalışacak şekilde yapılandırma.

Dağıtımları otomatikleştirmek için Visual Studio ve MSBuild kullanma

Dağıtım için genellikle, dotnet publish çıkışının sunucuya kopyalanmasının yanı sıra ek görevler gerekir. Örneğin, ek dosyalar gerekli olabilir veya yayımlama klasöründen dışlanabilir. Visual Studio, web dağıtımı için MSBuild kullanır ve MSBuild dağıtım sırasında diğer birçok görevi yerine getirmek üzere özelleştirilebilir. Daha fazla bilgi için, bkz. ASP.NET Core uygulama dağıtımı için Visual Studio yayımlama profilleri (.pubxml) ve MSBuild ve Team Foundation Derlemesini Kullanma kitabı.

Yayımlama Web özelliği, uygulamaları kullanılarak doğrudan Visual Studio'dan Azure App Service dağıtılabilir. Azure DevOps Services, Azure App Service için sürekli dağıtımı destekler. Daha fazla bilgi için, bkz. ASP.NET Core Geliştiricileri için DevOps.

Azure'a Yayımlama

Visual Studio kullanarak Azure'da uygulama yayımlama yönergeleri için bkz. Visual Studio ile Azure'da ASP.NET Core uygulaması yayımlama. Ek bir örnek, Azure'da ASP.NET Core web uygulaması oluşturma tarafından sağlanır.

Windows'da MSDeploy ile yayımlama

Dotnet msbuild komutunu kullanan bir Windows komut isteminden de dahil olmak üzere Visual Studio yayımlama profiliyle uygulama yayımlama yönergeleri için, bkz. ASP.NET Core uygulama dağıtımı için Visual Studio yayımlama profilleri (.pubxml).

Internet Information Services (IIS)

web.config dosyası tarafından sağlanan yapılandırmayla Internet Information Services'e (IIS) yapılan dağıtımlar için, IIS ile Windows'da ASP.NET Core Barındırma altındaki makalelere bakın.

Web grubunda barındırma

ASP.NET Core uygulamalarını bir web grubu ortamında barındırma yapılandırması (örneğin, ölçeklenebilirlik için uygulamanızın birden çok örneğinin dağıtımı) hakkında bilgi için bkz. Web grubunda ASP.NET Core barındırma.

Docker'da Barındırma

Daha fazla bilgi için, bkz. Docker kapsayıcılarında ASP.NET Core barındırma.

Ek kaynaklar