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:
- Microsoft. AspNetCore. AzureAppServices. hostingstartup , Azure App Service ile ASP.NET Core hafif tümleştirme sağlamak Için ıhostingstartup kullanır. Eklenen günlük özellikleri, paket tarafından sağlanır
Microsoft.AspNetCore.AzureAppServicesIntegration. - Microsoft. AspNetCore. AzureAppServicesIntegration , pakette Azure App Service tanılama günlüğü sağlayıcıları eklemek Için Addadurewebappdiagnostics ' i yürütür
Microsoft.Extensions.Logging.AzureAppServices. - Microsoft. Extensions. Logging. AzureAppServices , Azure App Service tanılama günlüklerini ve günlük akışı özelliklerini desteklemek için günlükçü uygulamaları sağlar.
Ö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 Pipelines kullanarak .NET Core SDK sürümünü belirtin
- Kendi içinde bir önizleme uygulaması dağıtma
- Kapsayıcılar için Web Apps Docker kullanma
- Önizleme sitesi uzantısını yükler
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.

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 .

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 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:
- Azure App Service sitesi, Önizleme sitesi uzantısınıgerektirmez.
- Uygulamanın, çerçeveye bağımlı dağıtım (FDD)için yayımlarken farklı bir yaklaşımdan sonra yayımlanması gerekir.
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.
- Azure portalından App Service gidin.
- Web uygulamasını seçin.
- "Uzantıları" filtrelemek için arama kutusuna "Ex" yazın veya yönetim araçları listesini aşağı kaydırın.
- Uzantılar'ı seçin.
- Ekle’yi seçin.
- 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}. - Yasal koşulları kabul etmek için Tamam ' ı seçin.
- Uzantıyı yüklemek için Tamam ' ı seçin.
İşlem tamamlandığında, en son .NET Core önizlemesi yüklenir. Yüklemeyi doğrulayın:
Gelişmiş Araçlar' ı seçin.
Gelişmiş araçlarda Git ' i seçin.
Hata ayıklama konsolu > PowerShell menü öğesini seçin.
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
Truex64 ö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
- 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.
- Bir yayımlama hedefi seç iletişim kutusunda App Service seçili olduğunu onaylayın.
- Gelişmiş'i seçin. Yayımla iletişim kutusu açılır.
- 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.
- 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).
- 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.
- Bir yayımlama hedefi seç iletişim kutusunda App Service seçili olduğunu onaylayın.
- Gelişmiş'i seçin. Yayımla iletişim kutusu açılır.
- 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.
- 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
- App Service’e genel bakış
- Azure App Service: .NET uygulamalarınızı barındırmak için En Iyi yer (55 dakikalık genel bakış videosu)
- Azure Cuma: Azure App Service tanılama ve sorun giderme deneyimi (12 dakikalık video)
- Azure App Service tanılamada genel bakış
- Web ASP.NET Core konak grubu
Windows Server 'da Azure App Service, Internet Information Services (IIS)kullanır. Aşağıdaki konular, temel alınan IIS teknolojisine yöneliktir: