ASP.NET Core uygulamalarını Azure App Service dağıtma

Azure App Service , Web uygulamalarını barındırmak için ASP.NET Core dahil olmak üzere bir Microsoft bulut bilgi işlem platformu hizmetidir .

Yararlı kaynaklar

App Service belge , Azure Apps belgelerinin, öğreticilerin, örneklerin, nasıl yapılır kılavuzlarının ve diğer kaynakların ana adresidir. Barındırma ASP.NET Core uygulamaları ile ilgili iki önemli öğretici şunlardır:

Azure’da ASP.NET Core web uygulaması oluşturma
ASP.NET Core bir Web uygulamasını Windows üzerinde Azure App Service oluşturmak ve dağıtmak için Visual Studio 'Yu kullanın.

Linux üzerinde App Service ASP.NET Core uygulama oluşturma
Linux üzerinde Azure App Service için bir ASP.NET Core Web uygulaması oluşturup dağıtmak üzere komut satırını kullanın.

Azure App Service 'te bulunan ASP.NET Core sürümü için App Service panosundaki ASP.NET Core bakın.

App Service Duyurular deposuna abone olun ve sorunları izleyin. App Service takım, App Service gelen duyuruları ve senaryoları düzenli olarak gönderir.

Aşağıdaki makaleler ASP.NET Core belgelerinde sunulmaktadır:

Visual Studio ile Azure 'da ASP.NET Core uygulaması yayımlama
ASP.NET Core uygulamasının Visual Studio kullanarak Azure App Service nasıl yayımlanacağını öğrenin.

<xref:host-and-deploy/azure-apps/azure-continuous-deployment>
Visual Studio kullanarak ASP.NET Core bir Web uygulaması oluşturmayı ve sürekli dağıtım için git 'i kullanarak Azure App Service nasıl dağıtacağınızı öğrenin.

İlk işlem hattınızı oluşturma
ASP.NET Core bir uygulama için CI derlemesi ayarlayın ve Azure App Service için sürekli bir dağıtım sürümü oluşturun.

Azure Web uygulaması korumalı alanı
Azure Apps platformu tarafından zorlanan Azure App Service çalışma zamanı yürütme sınırlamalarını bulun.

ASP.NET Core projelerinde sorun giderme ve hata ayıklama
ASP.NET Core projelerle uyarıları ve hataları anlayın ve sorun giderin.

Uygulama yapılandırması

Platform

Bir App Services uygulamasının platform mimarisi (x86/x64), A serisi bir işlem (temel) veya daha yüksek bir barındırma katmanında barındırılan uygulamalar için Azure portalında uygulama ayarlarında ayarlanır. Uygulamanın yayımlama ayarlarının (örneğin, Visual Studio Publish profile (. pubxml)) Azure portalındaki uygulamanın hizmet yapılandırmasındaki ayarla eşleştiğinden emin olun.

64-bit (x64) ve 32-bit (x86) uygulamalarının çalışma zamanları Azure App Service vardır. App Service kullanılabilir .NET Core SDK 32 bittir, ancak kudu konsolunu veya Visual Studio 'daki Yayımla işlemini kullanarak yerel olarak oluşturulan 64 bit uygulamaları dağıtabilirsiniz. Daha fazla bilgi için, uygulamayı yayımlama ve dağıtma bölümüne bakın.

Yerel bağımlılıklara sahip uygulamalar için, 32-bit (x86) uygulamalarının çalışma zamanları Azure App Service vardır. App Service kullanılabilir .NET Core SDK 32 bitlik bir değer.

.NET Core Framework bileşenleri ve dağıtım yöntemleri hakkında daha fazla bilgi için, .NET Core çalışma zamanı ve .NET Core SDK hakkında bilgi gibi bkz. .NET Core: bileşim hakkında.

Paketler

Azure App Service dağıtılan uygulamalar için otomatik günlük oluşturma özellikleri sağlamak üzere aşağıdaki NuGet paketlerini ekleyin:

Önceki paketlere Microsoft. AspNetCore. app metapackagetarafından ulaşılabilir. Metapackage 'i .NET Framework veya başvurusunu hedefleyen uygulamalar, Microsoft.AspNetCore.App uygulamanın proje dosyasındaki ayrı paketlere açık olarak başvurmalıdır.

Azure portalını kullanarak uygulama yapılandırmasını geçersiz kılma

Azure portalındaki uygulama ayarları, uygulamanın ortam değişkenlerini ayarlamanıza olanak sağlar. Ortam değişkenleri, ortam değişkenleri yapılandırma sağlayıcısıtarafından tüketilebilir.

Azure portalında bir uygulama ayarı oluşturulduğunda veya değiştirildiğinde ve Kaydet düğmesi seçildiğinde, Azure uygulaması yeniden başlatılır. Ortam değişkeni, hizmet yeniden başlatıldıktan sonra uygulama için kullanılabilir.

Bir uygulama genel ana bilgisayarıkullandığında, CreateDefaultBuilder konak oluşturmak için çağrıldığında ortam değişkenleri uygulamanın yapılandırmasına yüklenir. Daha fazla bilgi için bkz ASP.NET Core .NET genel ana bilgisayarı . ve ortam değişkenleri yapılandırma sağlayıcısı.

Azure portalındaki uygulama ayarları, uygulamanın ortam değişkenlerini ayarlamanıza olanak sağlar. Ortam değişkenleri, ortam değişkenleri yapılandırma sağlayıcısıtarafından tüketilebilir.

Azure portalında bir uygulama ayarı oluşturulduğunda veya değiştirildiğinde ve Kaydet düğmesi seçildiğinde, Azure uygulaması yeniden başlatılır. Ortam değişkeni, hizmet yeniden başlatıldıktan sonra uygulama için kullanılabilir.

Bir uygulama Web konağınıkullandığında, CreateDefaultBuilder konak oluşturmak için çağrıldığında ortam değişkenleri uygulamanın yapılandırmasına yüklenir. Daha fazla bilgi için bkz ASP.NET Core Web ana bilgisayarı . ve ortam değişkenleri yapılandırma sağlayıcısı.

Proxy sunucusu ve yük dengeleyici senaryoları

İşlem dışıbarındırma sırasında Iletilen üstbilgiler ara yazılımını yapılandıran ve ASP.NET Core modülü DÜZENI (http/https) ve isteğin KAYNAKLANDıĞı uzak IP adresini iletecek şekilde yapılandırılmış IIS tümleştirme ara yazılımı. Ek proxy sunucularının ve yük dengeleyiciler arkasında barındırılan uygulamalar için ek yapılandırma gerekebilir. Daha fazla bilgi için bkz. proxy sunucularıyla ve yük dengeleyicilerle çalışacak ASP.NET Core yapılandırma.

İzleme ve günlüğe kaydetme

App Service dağıtılan ASP.NET Core uygulamalar, bir App Service uzantısı ASP.NET Core günlüğe kaydetme tümleştirmesiotomatik olarak alır. Uzantı, Azure App Service ASP.NET Core uygulamalar için günlüğe kaydetme tümleştirmesi imkanı sunar.

App Service dağıtılan ASP.NET Core uygulamalar, bir App Service uzantısı ASP.NET Core günlüğe kaydetme uzantısıotomatik olarak alır. Uzantı, Azure App Service ASP.NET Core uygulamalar için günlüğe kaydetme tümleştirmesi imkanı sunar.

İzleme, günlüğe kaydetme ve sorun giderme bilgileri için aşağıdaki makalelere bakın:

Azure App Service uygulamaları izleme
Uygulamalar ve App Service planları için kotaları ve ölçümleri incelemeyi öğrenin.

Azure App Service uygulamalar için tanılama günlüğünü etkinleştirme
HTTP durum kodları, başarısız istekler ve Web sunucusu etkinliği için tanılama günlüğü 'nün nasıl etkinleştirileceğini ve erişebileceğini öğrenin.

ASP.NET Core hataları işleme
ASP.NET Core uygulamalarında hataları işlemeye yönelik yaygın yaklaşımları anlayın.

Azure App Service IIS ASP.NET Core de ASP.NET Core sorunlarını giderme
ASP.NET Core uygulamalarla Azure App Service dağıtımlarla ilgili sorunları tanılamayı öğrenin.

ASP.NET Core ile Azure App Service ve IIS için ortak hatalar başvurusu
Sorun giderme önerisi ile Azure App Service/IIS tarafından barındırılan uygulamalar için ortak dağıtım yapılandırma hatalarına bakın.

Veri koruma anahtar halkası ve dağıtım Yuvaları

Veri koruma anahtarları %Home%\ASP.NET\DataProtection-Keys klasöründe kalıcı hale getirilir. Bu klasör, ağ depolama tarafından desteklenir ve uygulamayı barındıran tüm makinelerde eşitlenir. Anahtarlar bekleyen bir şekilde korunmuyor. Bu klasör, bir uygulamanın tüm örneklerine tek bir dağıtım yuvasında anahtar halkasını sağlar. Hazırlama ve üretim gibi ayrı dağıtım yuvaları, anahtar halkasını paylaşmaz.

Dağıtım yuvaları arasında takas edildiğinde, veri koruma kullanan tüm sistem, önceki yuva içindeki anahtar halkasını kullanarak depolanan verilerin şifresini çözemeyecektir. ASP.NET Cookie ara yazılımı, verilerini korumak için veri koruma kullanır cookie . Bu, kullanıcıların standart ASP.NET ara yazılım kullanan bir uygulamanın oturumunu kapatmakta olduğunu gösterir Cookie . Yuvada bağımsız bir anahtar halka çözümü için, bir dış anahtar halka sağlayıcısı kullanın, örneğin:

  • Azure Blob Depolama
  • Azure Key Vault
  • SQL Mağazası
  • Redis önbelleği

Daha fazla bilgi için bkz. ASP.NET Core'de önemli depolama sağlayıcıları.

.NET Core önizlemesi kullanan bir ASP.NET Core uygulaması dağıtma

.NET Core 'un önizleme sürümünü kullanan bir uygulamayı dağıtmak için aşağıdaki kaynaklara bakın. Bu yaklaşımlar, çalışma zamanı kullanılabilir ancak SDK Azure App Service üzerine yüklenmemişse de kullanılır.

Azure App Service 'te bulunan ASP.NET Core sürümü için App Service panosundaki ASP.NET Core bakın.

Azure Pipelines kullanarak .NET Core SDK sürümünü belirtin

Azure DevOps ile sürekli tümleştirme derlemesi ayarlamak için Azure App SERVICE CI/CD senaryoları kullanın. Azure DevOps derlemesi oluşturulduktan sonra, isteğe bağlı olarak derlemeyi belirli bir SDK sürümünü kullanacak şekilde yapılandırın.

.NET Core SDK sürümünü belirtin

Azure DevOps derlemesi oluşturmak için App Service dağıtım merkezini kullanırken, varsayılan derleme işlem hattı,, ve için adımları içerir Restore Build Test Publish . SDK sürümünü belirtmek için, yeni bir adım eklemek üzere aracı iş listesindeki Ekle (+) düğmesini seçin. Arama çubuğunda .NET Core SDK arayın.

.NET Core SDK adımını ekleyin

Aşağıdaki adımların .NET Core SDK belirtilen sürümünü kullanmasını sağlamak için adımı derlemedeki ilk konuma taşıyın. .NET Core SDK sürümünü belirtin. Bu örnekte, SDK olarak ayarlanır 3.0.100 .

SDK adımı tamamlandı

Kendi içindeki bir dağıtımı (SCD)yayımlamak için, adımında SCD ' yi yapılandırın Publish ve çalışma zamanı tanımlayıcısını (RID)sağlayın.

Kendi içinde yayımlama

Kendi içinde bir önizleme uygulaması dağıtma

Bir önizleme çalışma zamanını hedefleyen kendinden bağımsız bir dağıtım (SCD) , dağıtımdaki Önizleme çalışma zamanını taşır.

Kendi kendine içerilen bir uygulama dağıtımında:

Uygulamanın kendi Içinde dağıtımı bölümünde yer alan yönergeleri izleyin.

Kapsayıcılar için Web Apps Docker kullanma

Docker Hub , en son önizleme Docker görüntülerini içerir. Görüntüler, temel görüntü olarak kullanılabilir. Görüntüyü kullanın ve kapsayıcılar için normal olarak Web Apps için dağıtın.

Önizleme sitesi uzantısını yükler

Önizleme sitesi uzantısı kullanılarak bir sorun oluşursa, bir DotNet/AspNetCore sorunuaçın.

  1. Azure portalından App Service gidin.
  2. Web uygulamasını seçin.
  3. "Uzantıları" filtrelemek için arama kutusuna "Ex" yazın veya yönetim araçları listesini aşağı kaydırın.
  4. Uzantılar'ı seçin.
  5. Ekle’yi seçin.
  6. Listeden ASP.NET Core önizleme sürümü olduğu ve platformu belirten ASP.NET Core {X. Y} ({x64 | x86}) çalışma zamanı uzantısını seçin {X.Y} {x64|x86} .
  7. Yasal koşulları kabul etmek için Tamam ' ı seçin.
  8. Uzantıyı yüklemek için Tamam ' ı seçin.

İşlem tamamlandığında, en son .NET Core önizlemesi yüklenir. Yüklemeyi doğrulayın:

  1. Gelişmiş Araçlar' ı seçin.

  2. Gelişmiş araçlarda Git ' i seçin.

  3. Hata ayıklama konsolu > PowerShell menü öğesini seçin.

  4. PowerShell komut isteminde aşağıdaki komutu yürütün. Komutu için ASP.NET Core çalışma zamanı sürümünü {X.Y} ve platformunu değiştirin {PLATFORM} :

    Test-Path D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.{PLATFORM}\
    

    Bu komut True x64 önizlemesi çalışma zamanı yüklendiğinde döndürür.

Not

Bir App Services uygulamasının platform mimarisi (x86/x64), A serisi bir işlem (temel) veya daha yüksek bir barındırma katmanında barındırılan uygulamalar için Azure portalında uygulama ayarlarında ayarlanır. Uygulamanın yayımlama ayarlarının (örneğin, Visual Studio Publish profile (. pubxml)) Azure Portal uygulamanın hizmet yapılandırmasındaki ayarla eşleştiğini doğrulayın.

Uygulama, işlem içi modda çalışıyorsa ve platform mimarisi 64-bit (x64) için yapılandırılmışsa ASP.NET Core modülü, varsa 64 bit önizleme çalışma zamanını kullanır. Azure portalını kullanarak ASP.NET Core {X. Y} (x64) çalışma zamanı uzantısını yükler.

X64 Önizleme çalışma zamanını yükledikten sonra, yüklemeyi doğrulamak için Azure kudu PowerShell komut penceresinde aşağıdaki komutu çalıştırın. Aşağıdaki komutta için ASP.NET Core çalışma zamanı sürümünü yerine koyun {X.Y} :

Test-Path D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64\

Bu komut True x64 önizlemesi çalışma zamanı yüklendiğinde döndürür.

Not

ASP.NET Core uzantıları , Azure Uygulama Hizmetleri 'nde Azure günlük kaydı etkinleştirme gibi ek ASP.NET Core işlevler sunar. Uzantı Visual Studio 'dan dağıtıldığında otomatik olarak yüklenir. Uzantı yüklü değilse, uygulama için bu uygulamayı yükleme.

Bir ARM şablonuyla önizleme sitesi uzantısını kullanma

Uygulama oluşturmak ve dağıtmak için bir ARM şablonu kullanılıyorsa, siteextensions kaynak türü bir Web uygulamasına site uzantısını eklemek için kullanılabilir. Örnek:

{
    ...
    "parameters": {
        "site_name": {
            "defaultValue": "{SITE NAME}",
            "type": "String"
        },
        ...
    },       
    ...
    "resources": [
        ...
        {
            "type": "Microsoft.Web/sites/siteextensions",
            "apiVersion": "2018-11-01",
            "name": "[concat(parameters('site_name'), '/AspNetCoreRuntime.5.0.x64')]",
            "location": "[resourceGroup().location]",
            "dependsOn": [
                "[resourceId('Microsoft.Web/sites', parameters('site_name'))]"
            ]
        }
    ]
}
    

Uygulamayı yayımlama ve dağıtma

64 bitlik bir dağıtım için:

  • 64 bit uygulama derlemek için 64 bit .NET Core SDK kullanın.
  • App Service yapılandırmagenel ayarlarında platformu 64 bit olarak ayarlayın > General settings. Uygulamanın, platform bit özelliğini tercih etmek için temel veya daha yüksek bir hizmet planı kullanması gerekir.

Uygulama çerçevesine bağımlı dağıtım

  1. Build > Visual Studio araç çubuğundan derlemeyayımlaması {Application Name} öğesini seçin veya Çözüm Gezgini ' de projeye sağ tıklayıp Yayımla' yı seçin.
  2. Bir yayımlama hedefi seç iletişim kutusunda App Service seçili olduğunu onaylayın.
  3. Gelişmiş'i seçin. Yayımla iletişim kutusu açılır.
  4. Yayımla iletişim kutusunda:
    • Yayın yapılandırmasının seçili olduğunu doğrulayın.
    • Dağıtım modu açılır listesini açın ve çerçeveye bağımlı' ı seçin.
    • Hedef çalışma zamanıolarak Taşınabilir öğesini seçin.
    • Dağıtımdan sonra ek dosyaları kaldırmanız gerekiyorsa, dosya yayımlama seçenekleri ' ni açın ve hedefteki ek dosyaları kaldırmak için onay kutusunu işaretleyin.
    • Kaydet’i seçin.
  5. Yayımla sihirbazının kalan istemlerini izleyerek yeni bir site oluşturun veya var olan bir siteyi güncelleştirin.

Uygulamayı kendi içinde dağıtma

Visual Studio 'Yu veya kendi içindeki bir dağıtım için .NET Core CLI kullanın (SCD).

  1. Build > Visual Studio araç çubuğundan derlemeyayımlaması {Application Name} öğesini seçin veya Çözüm Gezgini ' de projeye sağ tıklayıp Yayımla' yı seçin.
  2. Bir yayımlama hedefi seç iletişim kutusunda App Service seçili olduğunu onaylayın.
  3. Gelişmiş'i seçin. Yayımla iletişim kutusu açılır.
  4. Yayımla iletişim kutusunda:
    • Yayın yapılandırmasının seçili olduğunu doğrulayın.
    • Dağıtım modu açılır listesini açın ve kendinden bağımsız' i seçin.
    • Hedef çalışma zamanı açılır listesinden hedef çalışma zamanını seçin. Varsayılan değer: win-x86.
    • Dağıtımdan sonra ek dosyaları kaldırmanız gerekiyorsa, dosya yayımlama seçenekleri ' ni açın ve hedefteki ek dosyaları kaldırmak için onay kutusunu işaretleyin.
    • Kaydet’i seçin.
  5. Yayımla sihirbazının kalan istemlerini izleyerek yeni bir site oluşturun veya var olan bir siteyi güncelleştirin.

Protokol ayarları (HTTPS)

Güvenli Protokol bağlamaları, HTTPS üzerinden isteklere yanıt verme sırasında kullanılacak bir sertifika belirtmenize olanak tanır. Bağlama, belirli bir ana bilgisayar adı için verilen geçerli bir özel sertifika (. pfx) gerektirir. Daha fazla bilgi için bkz. öğretici: var olan bir özel SSL sertifikasını Azure App Service bağlama.

Web.config’i dönüştürme

Yayımla web.config dönüştürmeniz gerekiyorsa (örneğin, yapılandırma, profil veya ortama göre ortam değişkenlerini ayarlayın), bkz Web.config’i dönüştürme ..

Ek kaynaklar

Windows Server 'da Azure App Service, Internet Information Services (IIS)kullanır. Aşağıdaki konular, temel alınan IIS teknolojisine yöneliktir: