Azure App Service için ASP.NET uygulaması yapılandırma

Not

ASP.NET Core için bkz. Azure App Service 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 App Service için özel kapsayıcı yapılandırma.

ASP.NET uygulamaların derlenmiş ikili dosyalar olarak Azure App Service dağıtılması gerekir. Visual Studio yayımlama aracı çözümü oluşturur ve sonra derlenmiş ikili dosyaları doğrudan dağıtırken, App Service dağıtım altyapısı önce kod deposunu dağıtır ve ardından ikili dosyaları derler.

Bu kılavuz, ASP.NET geliştiriciler için temel kavramlar ve yönergeler sağlar. Azure App Service hiç kullanmadıysanız, önce ASP.NET hızlı başlangıcı izleyin ve SQL Veritabanı öğreticiyle ASP.NET.

Desteklenen .NET Framework çalışma zamanı sürümlerini göster

App Service'da 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ı https://<app-name>.scm.azurewebsites.net/DebugConsole tabanlı konsolda uygun komutu bulun 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 altı):

ls "D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework"

Geçerli .NET Framework çalışma zamanı sürümünü göster

Cloud Shell aşağıdaki komutu çalıştırın:

az webapp config show --resource-group <resource-group-name> --name <app-name> --query netFrameworkVersion

değeriv4.0, en son CLR 4 sürümünün (.NET Framework 4.x) kullanıldığı anlamına gelir. değeriv2.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

varsayılan olarak App Service, ASP.NET uygulamanızı çalıştırmak için desteklenen en son .NET Framework sürümünü kullanır. Uygulamanızı bunun yerine .NET Framework 3.5 kullanarak çalıştırmak için Cloud Shell 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'da uygulama kodunuzun dışında uygulama ayarlarını ve bağlantı dizelerini 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 veweb.configiçinde 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.

Çok projeli çözümleri dağıtma

Bir 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 hangi proje App Service kullanılacağını belirtebilirsiniz. Örneğin, Cloud Shell 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 durumları alma sayfası

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 bu sayfa genel bir hata iletisiyle değiştirilir. ayrıntılı özel durum sayfasını App Service görüntülemek için Web.config dosyasını açın ve öğesini öğesinin <system.web> altına ekleyin<customErrors mode="Off"/>. Örnek:

<system.web>
    <customErrors mode="Off"/>
</system.web>

Uygulamanızı güncelleştirilmiş Web.configile 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. Örnek:

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.

Diğer kaynaklar