Azure App Service için ASP.NET uygulaması yapılandırma
Not
ASP.NET Core için bkz. Azure Uygulaması Hizmeti için ASP.NET Core uygulaması yapılandırma. ASP.NET uygulamanız özel bir Windows veya Linux kapsayıcısında çalışıyorsa bkz. Azure Uygulaması Hizmeti için özel kapsayıcı yapılandırma.
ASP.NET uygulamaların derlenmiş ikili dosyalar olarak Azure Uygulaması Hizmetine dağıtılması gerekir. Visual Studio yayımlama aracı çözümü oluşturur ve derlenmiş ikili dosyaları doğrudan dağıtırken, App Service dağıtım altyapısı önce kod deposunu dağıtır ve sonra ikili dosyaları derler.
Bu kılavuz, ASP.NET geliştiriciler için önemli kavramlar ve yönergeler sağlar. Azure Uygulaması Hizmeti'ni hiç kullanmadıysanız, önce ASP.NET hızlı başlangıcı izleyin ve SQL Veritabanı öğreticisiyle ASP.NET.
Desteklenen .NET Framework çalışma zamanı sürümlerini göster
App Service'te Windows örneklerinde desteklenen tüm .NET Framework sürümleri zaten yüklüdür. Kullanabileceğiniz .NET Framework çalışma zamanını ve SDK sürümlerini göstermek için tarayıcı tabanlı konsolda uygun komutu bulun https://<app-name>.scm.azurewebsites.net/DebugConsole
ve çalıştırın:
CLR 4 çalışma zamanı sürümleri için (.NET Framework 4 ve üzeri):
ls "D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework"
En son .NET Framework sürümü hemen kullanılamayabilir.
CLR 2 çalışma zamanı sürümleri için (.NET Framework 3.5 ve üstü):
ls "D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework"
Geçerli .NET Framework çalışma zamanı sürümünü göster
Cloud Shell'de aşağıdaki komutu çalıştırın:
az webapp config show --resource-group <resource-group-name> --name <app-name> --query netFrameworkVersion
değeri v4.0
, en son CLR 4 sürümünün (.NET Framework 4.x) kullanıldığı anlamına gelir. değeri v2.0
, CLR 2 sürümünün (.NET Framework 3.5) kullanıldığı anlamına gelir.
.NET Framework çalışma zamanı sürümünü ayarlama
App Service, ASP.NET uygulamanızı çalıştırmak için varsayılan olarak desteklenen en son .NET Framework sürümünü kullanır. Bunun yerine uygulamanızı .NET Framework 3.5 kullanarak çalıştırmak için Cloud Shell'de aşağıdaki komutu çalıştırın (v2.0, CLR 2'yi gösterir):
az webapp config set --resource-group <resource-group-name> --name <app-name> --net-framework-version v2.0
Ortam değişkenlerine erişme
App Service'te uygulama kodunuzun dışında uygulama ayarlarını ve bağlantı dizesi ayarlayabilirsiniz. Ardından standart ASP.NET desenini kullanarak bunlara herhangi bir sınıfta erişebilirsiniz:
using System.Configuration;
...
// Get an app setting
ConfigurationManager.AppSettings["MySetting"];
// Get a connection string
ConfigurationManager.ConnectionStrings["MyConnection"];
}
App Service'te ve web.config'de aynı ada sahip bir uygulama ayarı yapılandırırsanız, App Service değeri web.config değerinden önceliklidir. Yerel web.config değeri uygulamada yerel olarak hata ayıklamanıza olanak tanır, ancak App Service değeri uygulamanızı üretim ayarlarıyla üründe çalıştırmanıza olanak tanır. Bağlantı dizeleri aynı şekilde çalışır. Bu şekilde uygulama gizli dizilerinizi kod deponuzun dışında tutabilir ve kodunuzu değiştirmeden uygun değerlere erişebilirsiniz.
Not
Bağlantı gizli dizileri gerektirmeyen daha güvenli bağlantı seçeneklerini göz önünde bulundurun. Daha fazla bilgi için bkz. Azure Uygulaması Hizmetinden Azure hizmetlerine ve veritabanlarına güvenli bağlantı.
Birden çok proje içeren çözümleri dağıtma
Visual Studio çözümü birden çok proje içerdiğinde, Visual Studio yayımlama işlemi zaten dağıtılacak projeyi seçmeyi içerir. Git gibi App Service dağıtım altyapısına veya derleme otomasyonu etkin zip dağıtımıyla dağıtım yaptığınızda, App Service dağıtım altyapısı App Service uygulaması olarak bulduğu ilk Web Sitesini veya Web Uygulaması Projesini seçer. Uygulama ayarını belirterek PROJECT
App Service'in kullanması gereken projeyi belirtebilirsiniz. Örneğin, Cloud Shell'de aşağıdakileri çalıştırın:
az webapp config appsettings set --resource-group <resource-group-name> --name <app-name> --settings PROJECT="<project-name>/<project-name>.csproj"
Ayrıntılı özel durum sayfası görüntüleme
ASP.NET uygulamanız Visual Studio hata ayıklayıcısında bir özel durum oluşturduğunda, tarayıcı ayrıntılı bir özel durum sayfası görüntüler, ancak App Service'te bu sayfa genel bir hata iletisiyle değiştirilir. App Service'te ayrıntılı özel durum sayfasını görüntülemek için Web.config dosyasını açın ve öğesini öğesinin <customErrors mode="Off"/>
<system.web>
altına ekleyin. Örneğin:
<system.web>
<customErrors mode="Off"/>
</system.web>
Uygulamanızı güncelleştirilmiş Web.config ile yeniden dağıtın. Şimdi aynı ayrıntılı özel durum sayfasını görmeniz gerekir.
Tanılama günlüklerine erişim
System.Diagnostics.Trace kullanarak uygulama kodunuza tanılama iletileri ekleyebilirsiniz. Örneğin:
Trace.TraceError("Record not found!"); // Error trace
Trace.TraceWarning("Possible data loss"); // Warning trace
Trace.TraceInformation("GET /Home/Index"); // Information trace
App Service’te uygulama kodunuzun içinden oluşturulan konsol günlüklerine erişmek için şu komutu Cloud Shell’de çalıştırarak tanılama günlüğüne kaydetmeyi açın:
az webapp log config --resource-group <resource-group-name> --name <app-name> --docker-container-logging filesystem --level Verbose
--level
için olası değerler: Error
, Warning
, Info
ve Verbose
. Her düzey kendisinden önceki düzeyi içerir. Örneğin: Error
yalnızca hata iletilerini içerir, Verbose
ise tüm iletileri içerir.
Tanılama günlüğüne kaydetme açıldıktan sonra günlük akışını görmek için şu komutu çalıştırın:
az webapp log tail --resource-group <resource-group-name> --name <app-name>
Konsol günlüklerini hemen görmüyorsanız, 30 saniye içinde yeniden kontrol edin.
Not
Ayrıca, tarayıcıdan https://<app-name>.scm.azurewebsites.net/api/logs/docker
adresine giderek günlük dosyalarını inceleyebilirsiniz.
Günlük akışını dilediğiniz zaman durdurmak için Ctrl
+C
yazın.