Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure App Service, yüksek oranda ölçeklenebilen, kendi kendine düzeltme eki uygulayan bir web barındırma hizmeti sunar. Bu öğreticide, App Service'te veri temelli bir ASP.NET uygulamasının nasıl dağıtılacağı ve Azure SQL Veritabanı nasıl bağlanılacağı gösterilmektedir.
Öğreticiyi tamamladığınızda, Azure'da çalışan bir Azure SQL veritabanına bağlı bir ASP.NET uygulamanız vardır. Aşağıdaki örnekte uygulama arabirimi gösterilmektedir.
Bu eğitimde, siz:
- Veri temelli bir web uygulamasını Azure'da yayımlama.
- Uygulama verilerini tutmak için bir Azure SQL veritabanı oluşturun.
- ASP.NET uygulamasını Azure SQL veritabanına bağlayın.
- Veritabanı bağlantısı için yönetilen kimlik ve Microsoft Entra Id kimlik doğrulamasını yapılandırın.
- Veri modelini güncelleştirin ve uygulamayı yeniden dağıtın.
- Uygulama günlüklerini Azure'dan Visual Studio'ya akışla aktar.
Önkoşullar
- Azure hesabınız yoksa, başlamadan önce ücretsiz hesap oluşturun.
- Visual Studio 2022'yiASP.NET, web geliştirme ve Azure geliştirme iş yükleriyle yükleyin.
- Visual Studio Araçları menüsünde Araçları ve Özellikleri Al'ı seçerek iş yüklerini mevcut bir Visual Studio yüklemesine ekleyebilirsiniz.
- Yardım> Güncelleştirmeleri denetleme'yi seçerek ve gerekirse en son sürümü yükleyerek Visual Studio 2022 için en songüncelleştirmelere sahip olduğunuzdan emin olun.
Uygulamayı oluşturma ve çalıştırma
Örnek proje, Entity Framework Code First kullanan temel bir ASP.NET MVC create-read-update-delete (CRUD) uygulaması içerir.
Örnek projeyi indirin ve dotnet-sqldb-tutorial-master.zip dosyasını ayıklayın.
Ayıklanan dotnet-sqldb-tutorial-master/DotNetAppSqlDb.sln dosyasını Visual Studio'da açın.
Uygulamayı çalıştırmak ve varsayılan tarayıcınızda açmak için F5 tuşuna basın.
Not
Gerekirse eksik NuGet paketlerini yükleyin.
Uygulamada Yeni Oluştur'u seçin ve birkaç to-do öğe oluşturun.
Düzenle, Ayrıntılar ve Sil bağlantılarını test edin.
Uygulamayı Azure'da yayımlama
Uygulamayı Azure'da yayımlamak için, uygulamayı barındırmak için Azure App Service ve App Service Planına sahip bir Yayımlama profili oluşturup yapılandırabilirsiniz. Ardından, uygulama verilerini içerecek bir Azure SQL Server ve Azure SQL veritabanı oluşturur ve uygulamayı veritabanına bağlamak için bir veritabanı bağlamı yapılandırabilirsiniz.
Visual Studio Çözüm Gezgini'ndeDotNetAppSqlDb projesine sağ tıklayın ve Yayımla'yı seçin.
Yayımla ekranında hedef olarak Azure'ı ve ardından İleri'yi seçin.
Sonraki ekranda Azure App Service'in (Windows) seçili olduğundan emin olun ve İleri'yi seçin.
Oturum açma ve Azure App Service ekleme
Sonraki Yayımla ekranında, Microsoft hesabınızda ve kullanmak istediğiniz abonelikte oturum açın.
App Service'in yanındaki Yeni oluştur'u seçin.
Azure App Service'i yapılandırma
App Service (Windows) ekranında App Service Adı, Kaynak grubu ve Barındırma Planı'nı yapılandırın.
Ad altında, oluşturulan web uygulaması adını tutabilir veya
a-z,0-9ve-karakterlerini içeren başka bir adla değiştirebilirsiniz. Web uygulaması adı tüm Azure uygulamalarında benzersiz olmalıdır.Kaynak grubu'nun yanında Yeni'yi seçin ve kaynak grubunu myResourceGroup olarak adlandırın.
Kaynak grubu, web uygulamaları, veritabanları ve depolama hesapları gibi Azure kaynaklarının dağıtıldığı ve yönetildiği mantıksal bir kapsayıcıdır. Örneğin, daha sonra tek bir basit adımda kaynak grubun tamamını silmeyi seçebilirsiniz.
Barındırma Planı'nın yanındaki Yeni'yi seçin.
App Service planı, uygulamanızı barındıran web sunucusu grubunun konumunu, boyutunu ve özelliklerini belirtir. Web uygulamalarını tek bir App Service planını paylaşacak şekilde yapılandırarak birden çok uygulama barındırırken tasarruf edebilirsiniz.
App Service planları şunları tanımlar:
- Bölge (örneğin, Kuzey Avrupa, Doğu ABD veya Güneydoğu Asya)
- Örnek boyutu (küçük, orta veya büyük)
- Ölçek sayısı (1 ila 20 örnek)
- SKU (Ücretsiz, Paylaşılan, Temel, Standart veya Premium)
Barındırma Planı ekranını tamamlayın ve tamam'ı seçin.
Ayar Önerilen değer Daha fazla bilgi için App Service Planı myAppServicePlan App Service planları Konum Doğu ABD Azure bölgeleri Büyüklük Ücretsiz Fiyatlandırma katmanları
App Service (Windows) ekranında Oluştur'u seçin ve Azure kaynaklarının oluşturulmasını bekleyin.
Yayımla ekranında yapılandırdığınız kaynaklar gösterilir. Bitir'i seçin ve ardından Kapat'ı seçin.
Sunucu ve veritabanı oluşturma
Veritabanı oluşturabilmeniz için önce mantıksal bir SQL sunucusuna ihtiyacınız vardır. Mantıksal SQL sunucusu, grup olarak yönetilen bir veritabanı grubu içeren mantıksal bir yapıdır.
DotNetAppSqlDb uygulamasının Yayımla ekranında, Hizmet Bağımlılıkları bölümünde SQL Server Veritabanı'nın yanındaki üç nokta ... simgesini seçin ve Bağlan'ı seçin.
Not
SQL Veritabanı'nı Bağlı Hizmetler sekmesinden değil Yayımla sekmesinden yapılandırdığınızdan emin olun.
Bağımlılıklara bağlan ekranında Azure SQL Veritabanı'nı ve ardından İleri'yi seçin.
Azure SQL Veritabanını Yapılandır ekranında Yeni oluştur'u seçin.
Azure SQL Veritabanı ekranında, Veritabanı sunucusunun yanındaki Yeni'yi seçin.
Sunucu adını istediğiniz değerle değiştirin. Sunucu adı, Azure SQL'deki tüm sunucularda benzersiz olmalıdır.
Tamam'ı seçin.
Azure SQL Veritabanı ekranında, varsayılan oluşturulan Veritabanı Adı'nı koruyun. Oluştur'u seçin ve veritabanı kaynaklarının oluşturulmasını bekleyin.
Veritabanı kaynakları oluşturulduğunda İleri'yi seçin.
Azure SQL Veritabanına Bağlan ekranında Son'u seçin.
Not
Bunun yerine Yerel kullanıcı gizli dizileri dosyalarını görüyorsanız SQL Veritabanı'nı yapılandırmak için Bağlı Hizmetler sayfasını değil Yayımla sayfasını kullandığınızdan emin olun.
Azure SQL Veritabanı bağlantınız, gizli anahtarlar veya parolalar kullanmadan Azure kaynaklarına uygulamanızı güvenli bir şekilde bağlayan Azure Hizmetleri için Yönetilen Kimlik kullanacak şekilde ayarlanmıştır. Şimdi bağlantının çalışması için bu yönetilen kimliğe karşılık gelen SQL kullanıcısına uygun izinleri ayarlamanız gerekir.
Yönetilen kimliği yapılandırma
Azure SQL Veritabanı oluşturma sihirbazı Yönetilen kimlik ve Entra Kimliği Varsayılan kimlik doğrulaması ile Azure SQL sunucusunu kurduğunda, Entra Id hesabınızı Azure SQL yöneticisi olarak eklemiş olur. Visual Studio'da aynı hesapta oturum açtıysanız, hem Visual Studio hem de Azure'daki veritabanına bağlanmak için aynı bağlantı dizesini kullanabilirsiniz.
Araçlar menüsünden NuGet Paket Yöneticisi>'nu seçin.
Paket Yöneticisi Konsolu'nda aşağıdaki paketleri yükleyin:
Install-Package Microsoft.Data.SqlClient Install-Package Microsoft.EntityFramework.SqlServerPowerShell komut satırında SQL Veritabanı'nda oturum açmak için aşağıdaki komutu çalıştırın; yerine
<server-name>sunucu adınız ve<entra-id-user>Visual Studio'da veritabanını ayarlamak için kullandığınız Microsoft Entra kullanıcı adı yazın. Bu Entra kullanıcısının varsayılan olarak veritabanı sunucusuna yönetici erişimi vardır.sqlcmd -S <servername>.database.windows.net -d DotNetAppSqlDb_db -U <entra-id-user> -G -l 30Oturum açmak için istemleri izleyin.
SQL isteminde aşağıdaki komutları çalıştırarak
<app-name>uygulamanızın ihtiyaç duyduğu en düşük izinleri verin ve değerini uygulama adınız ile değiştirin.CREATE USER [<app-name>] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [<app-name>]; ALTER ROLE db_datawriter ADD MEMBER [<app-name>]; ALTER ROLE db_ddladmin ADD MEMBER [<app-name>]; GO
Veritabanı bağlamını güncelleştirme
Uygulama, veritabanıyla bağlanmak için Models/MyDatabaseContext.cs dosyasında başvurulan bir veritabanı bağlamı kullanır. Bu bölümde, kodu modern Microsoft.Data.SqlClient ADO.NET sağlayıcısına bağlı olan Entity Framework 6 SQL Server sağlayıcısına başvuracak şekilde güncelleştirin.
Entity Framework 6 sağlayıcısı yerleşik System.Data.SqlClient SQL Server sağlayıcısının yerini alır ve Microsoft Entra ID kimlik doğrulama yöntemleri için destek içerir. Daha fazla bilgi için bkz. Microsoft.EntityFramework.SqlServer}.
[DbConfigurationType(typeof(MicrosoftSqlDbConfiguration))], veritabanı bağlamı için Microsoft.Data.SqlClient kullanmak üzere yerel olarak çalışır, ancak Azure App Service'te System.Data.SqlClient sağlayıcı olarak sabit kodlandığından, başvuruları MicrosoftSqlDbConfigurationSystem.Data.SqlClient'dan Microsoft.Data.SqlClient'a yönlendirmek için genişletmeniz gerekir.
web.configbölümünde şu
entityFramework/providers/providerbölümü ve satırı kaldırın:<provider invariantName="System.Data.SqlClient" .../>.Models/MyDatabaseContext.cs içinde aşağıdaki sınıfı ekleyin:
public class AppServiceConfiguration : MicrosoftSqlDbConfiguration { public AppServiceConfiguration() { SetProviderFactory("System.Data.SqlClient", Microsoft.Data.SqlClient.SqlClientFactory.Instance); SetProviderServices("System.Data.SqlClient", MicrosoftSqlProviderServices.Instance); SetExecutionStrategy("System.Data.SqlClient", () => new MicrosoftSqlAzureExecutionStrategy()); } }Sınıf bildirimine
MyDatabaseContextaşağıdaki özniteliği ekleyin:[DbConfigurationType(typeof(AppServiceConfiguration))]
ASP.NET uygulamasını dağıtma
Yayımla sekmesinin üst kısmında Yayımla'yı seçin. ASP.NET uygulamanız Azure'a dağıtılır ve varsayılan tarayıcınız dağıtılan uygulamanın URL'sine başlatılır.
Uygulamayı test etmek için birkaç to-do öğesi ekleyin.
Tebrikler! Veri temelli ASP.NET uygulamanız Azure App Service'de çalışıyor.
SQL Server Nesne Gezgini'ni kullanma
Azure SQL veritabanınızı kolayca keşfetmek ve yönetmek için Visual Studio SQL Server Nesne Gezgini'ni kullanabilirsiniz. SQL Server Nesne Gezgini'nde sorguları çalıştırma veya tablo, görünüm ve saklı yordam oluşturma gibi en yaygın veritabanı işlemlerini gerçekleştirebilirsiniz.
Bilgisayarınızdan istemci bağlantısına izin verme
Varsayılan olarak, Azure sunucusu veritabanlarına yalnızca Azure uygulamanız gibi Azure hizmetlerinden bağlantılara izin verir. Yeni veritabanı, güvenlik duvarını oluşturduğunuz App Service uygulamasına açtı.
Visual Studio gibi yerel bilgisayarınızdan veritabanına erişmek için Azure sunucusunun makinenin genel IP adresine erişime izin vermek için güvenlik duvarını açması gerekir.
Yerel istemciniz için erişim eklemeniz istenirse Bilgisayarınızın genel IP adresine izin ver seçeneğini belirlediğinizden emin olun. Bu seçenek, yerel bilgisayarınızın genel IP adresine izin vermek için bir güvenlik duvarı kuralı oluşturur. İletişim kutusu zaten bilgisayarınızın geçerli IP adresiyle doldurulmuş.
Yerel bilgisayarınız için erişim eklemek isteyip istemediğiniz sorulmazsa, Azure portalında Azure SQL veritabanınıza gidip üst menü çubuğunda Sunucu güvenlik duvarını ayarla'yı seçebilirsiniz. Güvenlik duvarı kuralları altında yer alan Ağ sayfasında, İstemci IPv4 adresinizi ekleyin seçeneğini seçin.
Not
İnternet servis sağlayıcınız genel IP adresinizi değiştirirse güvenlik duvarını Azure veritabanına yeniden erişecek şekilde yeniden yapılandırmanız gerekir.
Azure SQL veritabanına yerel olarak bağlanma
Görünüm menüsünde SQL Server Nesne Gezgini'ni seçin.
SQL Server Nesne Gezgini penceresinin üst kısmında SQL Server Ekle simgesini seçin.
Bağlan ekranında, bağlantınız Azure düğümü altında görünür. Sunucu Adı, Kullanıcı Adı, Parola ve Veritabanı Adı bilgilerinizi tamamlayın ve Bağlan'ı seçin.
Visual Studio, SQL Veritabanı örneğinin bağlantısını yapılandırmayı tamamladıktan sonra veritabanınız SQL Server Nesne Gezgini'nde görünür. Verileri görmek için bağlantı adınızı<veritabanınızın adını veritabanları olarak genişletin>.>><>
Tablolar'ı genişletin, tabloya
ToDoessağ tıklayın ve veritabanı verileriyle etkileşime geçmek için Verileri Görüntüle'yi seçin.
Uygulamayı Code First Migrations ile güncelleştirme
Visual Studio'daki tanıdık araçları kullanarak Azure'daki veritabanınızı ve uygulamanızı güncelleştirebilirsiniz. Bu adımda, veritabanı şemanızı değiştirmek ve değişikliği Azure'da yayımlamak için Entity Framework'teki İlk Kod Geçişleri'ni kullanacaksınız.
Entity Framework Code First Migrations'ı kullanma hakkında daha fazla bilgi için bkz. MVC 5 Kullanarak Entity Framework 6 Code First ile Çalışmaya Başlama.
Veri modelinizi güncelleştirme
Kod düzenleyicide Models\Todo.cs dosyasını açın.
ToDo sınıfına aşağıdaki özelliği ekleyin:
public bool Done { get; set; }
Code First Migrations’ı yerel olarak çalıştırma
Yerel veritabanınızda güncelleştirme yapmak için birkaç komut çalıştırın.
Araçlar menüsünden NuGet Paket Yöneticisi>'nu seçin.
Paket Yöneticisi Konsolu penceresinde Code First Migrations'ı etkinleştirin:
Enable-MigrationsBir geçiş ekleyin:
Add-Migration AddPropertyYerel veritabanınızı güncelleştirin:
Update-DatabaseUygulamayı çalıştırmak için Ctrl+F5 tuşlarına basın. Düzenle, Ayrıntılar ve Yeni Oluştur bağlantılarını test edin.
Uygulama hatasız yüklenirse Code First Migrations başarılı olur. Ancak, uygulama mantığınız henüz bu yeni özelliği kullanmadığından sayfanız aynı görünmeye devam eder.
Yeni özelliği kullanma
Özelliğin çalıştığını görmek Done için kodunuzda bazı değişiklikler yapın. Bu öğreticide, yeni özelliği kullanmak için yalnızca Index ve Create görünümlerini değiştirirsiniz.
Controllers\TodosController.cs dosyasını açın ve 52. satırdaki
Create()yönteminde, özniteliğindeki özellikler listesineDoneekleyin. Yöntem imzanızCreate()aşağıdaki kod gibi görünmelidir:public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)Views\Todos\Create.cshtml dosyasını açın ve Razor kodunda,
<div class="form-group">kullananmodel.Descriptionöğesine ve<div class="form-group">kullananmodel.CreatedDateöğesine dikkat edin.Bu iki öğeden sonra,
<div class="form-group">kullanan aşağıdakimodel.Doneöğesini ekleyin.<div class="form-group"> @Html.LabelFor(model => model.Done, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> <div class="checkbox"> @Html.EditorFor(model => model.Done) @Html.ValidationMessageFor(model => model.Done, "", new { @class = "text-danger" }) </div> </div> </div>Views\Todos\Index.cshtml dosyasını açın ve boş
<th></th>öğenin hemen üstüne aşağıdaki Razor kodunu ekleyin:<th> @Html.DisplayNameFor(model => model.Done) </th><td>öğesinin,Html.ActionLink()yardımcı yöntemleri içeren kısmının üzerine, aşağıdaki Razor koduyla başka bir<td>öğesi ekleyin:<td> @Html.DisplayFor(modelItem => item.Done) </td>Tüm dosyaları kaydedin ve uygulamayı çalıştırmak için Ctrl+F5 tuşlarına basın.
Uygulamada bir to-do öğesi ekleyin ve Bitti'yi seçin. Öğe giriş sayfanızda tamamlanmış bir öğe olarak görünmelidir. Düzenleme görünümünü değiştirmediğiniz için Düzenleme görünümü Bitti alanını göstermez.
Azure'da Code First Migrations’ı etkinleştirme
Artık veritabanı geçişi de dahil olmak üzere kod değişikliğiniz çalıştığına göre, bunu Azure uygulamanızda yayımlayabilir ve Azure SQL veritabanınızı Code First Migrations ile güncelleştirebilirsiniz.
Visual Studio Çözüm Gezgini'nde projenize sağ tıklayın ve Yayımla'yı seçin.
Yayımlama ayarlarını açmak için Diğer eylemler>Düzenle'yi seçin.
MyDatabaseContext açılan listesinde Azure SQL veritabanınız için veritabanı bağlantısını seçin.
Kod İlk Geçişlerini Yürüt (uygulama başlangıcında çalışır) öğesini ve ardından Kaydet'i seçin.
Değişikliklerinizi yayımlama
Artık Azure uygulamanızda Code First Migrations'ı etkinleştirdiğinize göre kod değişikliklerinizi yayımlayın.
Yayımla sayfasında, 'Yayımla' seçeneğini seçin.
Yayımlanan web uygulamasında, daha fazla to-do öğe eklemeyi ve Bitti'yi seçmeyi deneyin; bunlar giriş sayfanızda tamamlanmış öğeler olarak görünmelidir.
Mevcut yapılacak öğeleriniz görüntülenmeye devam eder. ASP.NET uygulamanızı yeniden yayımladığınızda, Azure SQL veritabanınızdaki mevcut veriler kaybolmaz. Ayrıca, Code First Migrations yalnızca veri şemasını değiştirir ve verilerinizi olduğu gibi bırakır.
Uygulama günlüklerinin akışı yapma
İzleme iletilerini doğrudan Azure uygulamanızdan Visual Studio'ya akışla aktarabilirsiniz.
Controllers\TodosController.cs dosyasını açın ve her eylemin bir Trace.WriteLine() yöntemle başladığını unutmayın. Bu kod, Azure uygulamanıza izleme iletilerinin nasıl ekleneceğini gösterir.
Günlük akışını etkinleştirme
Visual Studio Yayımla sayfasında, ekranı aşağı kaydırarak Barındırma bölümüne gelin.
Sağ üst köşedeki üç nokta simgesini seçin ve Akış günlüklerini görüntüle seçeneğini seçin.
Şimdi Çıkış penceresine günlüklerin akışı yapılır.
Henüz iz mesajları görmüyorsunuz çünkü Akış günlüklerini görüntüle'yi ilk kez seçtiğinizde, Azure uygulamanız izleme düzeyini
Errorolarak ayarlar ve yalnızca hata olaylarınıTrace.TraceError()yöntemini kullanarak günlüğe kaydeder.
İzleme düzeylerini değiştirme
İzleme düzeylerini diğer izleme iletilerinin çıkışını almak üzere değiştirmek için Yayımla sayfasının Barındırma bölümünde sağ üstteki ... simgesini ve ardından Azure portalında aç'ı seçin.
Uygulamanızın Azure portalı sayfasında, soldaki menüde İzleme'nin altında App Service günlükleri'ni seçin.
Uygulama günlüğü (Dosya Sistemi) altında, Düzey için Ayrıntılı'yı ve ardından Kaydet'i seçin.
İpucu
Her düzeyde hangi tür iletilerin gösterildiğini görmek için farklı izleme düzeyleriyle denemeler yapabilirsiniz. Örneğin, Bilgi düzeyi
Trace.TraceInformation(),Trace.TraceWarning()veTrace.TraceError()tarafından oluşturulan tüm günlükleri içerir, amaTrace.WriteLine()tarafından oluşturulan günlükleri içermez.Tarayıcınızda Azure to-do listesi uygulamanıza yeniden gidin ve uygulamada gezinin. Aşağıdaki örnekler gibi izleme iletileri artık Visual Studio'daki Çıkış penceresine akışla aktarılmaktadır.
Application:2025-05-12T23:41:11 PID[17108] Verbose GET /Todos/Index Application:2025-05-12T23:42:04 PID[17108] Verbose GET /Todos/Index Application:2025-05-12T23:42:06 PID[17108] Verbose POST /Todos/Create Application:2025-05-12T23:42:07 PID[17108] Verbose GET /Todos/Index
Günlük akışını durdurma
Günlük akışı hizmetini durdurmak için Çıktı penceresinde İzlemeyi durdur simgesini seçin.
Kaynakları temizleme
Önceki adımlarda, bir kaynak grubunda Azure kaynakları oluşturdunuz. İleride bu kaynaklara ihtiyaç duymayacağınızı düşünüyorsanız kaynakları silmek için kaynak grubunu silebilirsiniz.
- Web uygulamanızın Azure portalındaki Genel Bakış sayfasından Kaynak grubu'nun altındaki myResourceGroup bağlantısını seçin.
- Kaynak grubu sayfasındaki listede yer alan kaynakların silmek istediğiniz kaynaklar olduğundan emin olun.
- Kaynak grubunu sil'i seçin, metin kutusuna myResourceGroup yazın ve sil'i seçin.
- Sil'i seçerek yeniden onaylayın.
İlgili içerik
- Azure App Service için ASP.NET uygulaması yapılandırma
- Hızlı Başlangıç: Maliyet analizini kullanmaya başlamak
Azure SQL Veritabanı bağlantı güvenliğini geliştirmek için yönetilen kimliği kullanmayı öğrenmek için sonraki öğreticiye gidin.