Bagikan melalui


Tutorial: Menyebarkan aplikasi ASP.NET dengan database Azure SQL ke Azure

Azure App Service menyediakan layanan hosting web yang sangat dapat diskalakan dan dapat melakukan patch sendiri. Tutorial ini menunjukkan cara menyebarkan aplikasi ASP.NET berbasis data di App Service dan menyambungkannya ke Azure SQL Database.

Setelah menyelesaikan tutorial, Anda memiliki aplikasi ASP.NET yang tersambung ke database Azure SQL yang berjalan di Azure. Contoh berikut menunjukkan antarmuka aplikasi.

Cuplikan layar yang memperlihatkan aplikasi ASP.NET yang diterbitkan di Azure App Service.

Di tutorial ini, Anda akan:

  • Menerbitkan aplikasi web berbasis data ke Azure.
  • Buat database Azure SQL untuk menyimpan data aplikasi.
  • Sambungkan aplikasi ASP.NET ke database Azure SQL.
  • Konfigurasikan identitas terkelola dan autentikasi ID Microsoft Entra untuk koneksi database.
  • Perbarui model data dan sebarkan ulang aplikasi.
  • Streaming log aplikasi dari Azure ke Visual Studio.

Prasyarat

  • Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.
  • Instal Visual Studio 2022 dengan ASP.NET dan pengembangan web serta beban kerja pengembangan Azure.
    • Anda dapat menambahkan beban kerja ke penginstalan Visual Studio yang sudah ada dengan memilih Dapatkan Alat dan Fitur di menu Alat Visual Studio.
    • Pastikan Anda memiliki pembaruan terbaru untuk Visual Studio 2022 dengan memilih Bantuan>Periksa pembaruan dan instal versi terbaru jika perlu.

Membuat dan menjalankan aplikasi

Proyek sampel berisi aplikasi dasar ASP.NET MVC create-read-update-delete (CRUD) yang menggunakan Kode Kerangka Kerja Entitas Terlebih Dahulu.

  1. Unduh proyek sampel dan ekstrak file dotnet-sqldb-tutorial-master.zip .

  2. Buka file dotnet-sqldb-tutorial-master/DotNetAppSqlDb.sln yang diekstrak di Visual Studio.

  3. Tekan F5 untuk menjalankan aplikasi dan membukanya di browser default Anda.

    Catatan

    Jika perlu, instal paket NuGet yang hilang.

  4. Di aplikasi, pilih Buat Baru dan buat beberapa item to-do .

    Cuplikan layar yang memperlihatkan aplikasi web ASP.NET.

  5. Uji tautan Edit, Detail, dan Hapus.

Menerbitkan aplikasi ke Azure

Untuk menerbitkan aplikasi ke Azure, Anda membuat dan mengonfigurasi profil Terbitkan yang memiliki Azure App Service dan Paket App Service untuk menghosting aplikasi. Anda kemudian membuat database Azure SQL Server dan Azure SQL untuk berisi data aplikasi, dan mengonfigurasi konteks database untuk menyambungkan aplikasi dengan database.

  1. Di Visual Studio Solution Explorer, klik kanan proyek DotNetAppSqlDb dan pilih Terbitkan.

    Cuplikan layar yang memperlihatkan Terbitkan dari Penjelajah Solusi.

  2. Pada layar Terbitkan , pilih Azure sebagai target Anda dan pilih Berikutnya.

  3. Pada layar berikutnya, pastikan Bahwa Azure App Service (Windows) dipilih dan pilih Berikutnya.

Masuk dan menambahkan Azure App Service

  1. Pada layar Terbitkan berikutnya, masuk ke akun Microsoft dan langganan yang ingin Anda gunakan.

  2. Di samping App Service, pilih Buat baru.

    Cuplikan layar yang memperlihatkan memilih Buat baru untuk App Service di panel Terbitkan.

Mengonfigurasi Azure App Service

  1. Pada layar App Service (Windows), konfigurasikan Nama App Service, Grup sumber daya, dan Paket Hosting.

    Cuplikan layar yang memperlihatkan pembuatan paket App Service.

  2. Di bawah Nama, Anda dapat menyimpan nama aplikasi web yang dihasilkan, atau mengubahnya menjadi nama lain dengan karakter a-z, 0-9, dan -. Nama aplikasi web harus unik di semua aplikasi Azure.

  3. Di samping Grup sumber daya, pilih Baru, dan beri nama grup sumber daya myResourceGroup.

    Grup sumber daya Azure adalah kontainer logis tempat sumber daya Azure seperti aplikasi web, database, dan akun penyimpanan disebarkan dan dikelola. Misalnya, Anda dapat memilih untuk menghapus seluruh grup sumber daya dalam satu langkah sederhana nanti.

  4. Di samping Paket Hosting, pilih Baru.

    Rencana App Service menentukan lokasi, ukuran, dan fitur farm server web yang menghosting aplikasi Anda. Anda dapat menghemat uang saat menghosting beberapa aplikasi dengan mengonfigurasi aplikasi web untuk berbagi satu paket Azure App Service.

    Paket Azure App Service:

    • Wilayah (misalnya: Eropa Utara, AS Timur, atau Asia Tenggara)
    • Ukuran instans (kecil, sedang, atau besar)
    • Jumlah skala (1 hingga 20 instans)
    • SKU (Gratis, Bersama, Dasar, Standar, atau Premium)
  5. Selesaikan layar Paket Hosting , lalu pilih OK.

    Pengaturan Nilai yang disarankan Untuk informasi lebih lanjut
    Paket App Service myAppServicePlan Paket App Service
    Tempat US Timur Wilayah Azure
    Ukuran Gratis Tingkat harga

    Cuplikan layar yang memperlihatkan pembuatan Paket Hosting.

  6. Pada layar App Service (Windows), pilih Buat, dan tunggu hingga sumber daya Azure dibuat.

  7. Layar Terbitkan memperlihatkan sumber daya yang Anda konfigurasi. Pilih Selesai, lalu pilih Tutup.

    Cuplikan layar yang memperlihatkan sumber daya yang Anda buat.

Buat server dan database

Sebelum Anda bisa membuat database, Anda memerlukan server SQL logis. Server SQL logis adalah konstruksi logis yang berisi sekelompok database yang dikelola sebagai grup.

  1. Pada layar Terbitkan untuk aplikasi DotNetAppSqlDb , di bagian Dependensi Layanan , pilih elipsis ... di samping Database SQL Server, dan pilih Sambungkan.

    Catatan

    Pastikan untuk mengonfigurasi SQL Database dari tab Terbitkan , bukan tab Layanan Tersambung .

    Cuplikan layar yang memperlihatkan konfigurasi dependensi SQL Database.

  2. Pada layar Sambungkan ke dependensi , pilih Azure SQL Database lalu pilih Berikutnya.

  3. Pada layar Konfigurasikan Azure SQL Database , pilih Buat baru.

  4. Pada layar Azure SQL Database , di samping Server database, pilih Baru.

  5. Ubah nama server menjadi nilai yang Anda inginkan. Nama server harus unik di semua server di Azure SQL.

  6. Pilih OK.

    Cuplikan layar yang memperlihatkan pembuatan server.

  7. Pada layar Azure SQL Database , pertahankan Nama Database yang dihasilkan secara default. Pilih Buat dan tunggu hingga sumber daya database dibuat.

    Cuplikan layar yang memperlihatkan konfigurasi database.

  8. Saat sumber daya database dibuat, pilih Berikutnya.

  9. Pada layar Sambungkan ke Azure SQL Database , pilih Selesai.

    Cuplikan layar dengan pesan tentang mengonfigurasi identitas terkelola agar koneksi dapat berfungsi.

    Catatan

    Jika Anda melihat File rahasia pengguna lokal sebagai gantinya, pastikan Anda menggunakan halaman Terbitkan , bukan halaman Connected Services , untuk mengonfigurasi SQL Database.

Koneksi Azure SQL Database Anda sekarang disiapkan untuk menggunakan Identitas Terkelola untuk layanan Azure, metode aman untuk menyambungkan aplikasi Anda ke sumber daya Azure Anda yang tidak menggunakan rahasia atau kata sandi. Anda sekarang perlu mengatur izin yang sesuai pada pengguna SQL yang sesuai dengan identitas terkelola ini agar koneksi berfungsi.

Mengonfigurasikan identitas terkelola

Saat wizard pembuatan Azure SQL Database menyiapkan server Azure SQL dengan identitas terkelola dan autentikasi Entra ID Default, ia menambahkan akun Entra ID Anda sebagai admin Azure SQL. Jika Anda masuk ke akun yang sama di Visual Studio, Anda dapat menggunakan string koneksi yang sama untuk menyambungkan ke database di Visual Studio dan Azure.

  1. Dari menu Alat, pilih Pengelola Paket NuGet>Konsol Pengelola Paket.

  2. Di Konsol Manajer Paket, instal paket berikut:

    Install-Package Microsoft.Data.SqlClient
    Install-Package Microsoft.EntityFramework.SqlServer
    
  3. Di baris perintah PowerShell, jalankan perintah berikut untuk masuk ke SQL Database, mengganti <server-name> dengan nama server Anda dan <entra-id-user> dengan nama pengguna Microsoft Entra yang Anda gunakan untuk menyiapkan database di Visual Studio. Pengguna Entra tersebut memiliki akses admin ke server database secara default.

    sqlcmd -S <servername>.database.windows.net -d DotNetAppSqlDb_db -U <entra-id-user> -G -l 30
    

    Ikuti permintaan untuk masuk.

  4. Pada perintah SQL, jalankan perintah berikut untuk memberikan izin minimum yang dibutuhkan aplikasi Anda, mengganti <app-name> dengan nama aplikasi Anda.

    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
    

Memperbarui konteks database

Aplikasi ini menggunakan konteks database untuk terhubung dengan database, yang dirujuk dalam file Model/MyDatabaseContext.cs . Di bagian ini, Anda memperbarui kode untuk merujuk ke penyedia Entity Framework 6 SQL Server, yang bergantung pada penyedia ADO.NET Microsoft.Data.SqlClient modern.

Penyedia Entity Framework 6 menggantikan penyedia SQL Server bawaan System.Data.SqlClient , dan menyertakan dukungan untuk metode autentikasi ID Microsoft Entra. Untuk informasi selengkapnya, lihat Microsoft.EntityFramework.SqlServer}.

[DbConfigurationType(typeof(MicrosoftSqlDbConfiguration))] bekerja secara lokal untuk digunakan Microsoft.Data.SqlClient untuk konteks database, tetapi karena System.Data.SqlClient dikodekan secara permanen sebagai penyedia di Azure App Service, Anda perlu memperluas MicrosoftSqlDbConfiguration untuk mengalihkan referensi ke System.Data.SqlClientMicrosoft.Data.SqlClient sebagai gantinya.

  1. Di web.config, hapus bagian entityFramework/providers/provider dan baris: <provider invariantName="System.Data.SqlClient" .../>.

  2. Di Model/MyDatabaseContext.cs, tambahkan kelas berikut:

        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());
            }
        }
    
  3. Tambahkan atribut berikut ke MyDatabaseContext deklarasi kelas:

    [DbConfigurationType(typeof(AppServiceConfiguration))]
    

Menyebarkan aplikasi ASP.NET

  1. Di bagian atas tab Terbitkan , pilih Terbitkan. Aplikasi ASP.NET Anda disebarkan ke Azure, dan browser default Anda diluncurkan ke URL aplikasi yang disebarkan.

  2. Untuk menguji aplikasi, tambahkan beberapa item to-do.

    Cuplikan layar yang memperlihatkan aplikasi ASP.NET yang diterbitkan di Azure App Service.

Selamat! Aplikasi berbasis data ASP.NET Anda dijalankan langsung di Azure App Service.

Menggunakan SQL Server Object Explorer

Anda dapat menggunakan Visual Studio SQL Server Object Explorer untuk menjelajahi dan mengelola database Azure SQL Anda dengan mudah. Di SQL Server Object Explorer, Anda dapat melakukan operasi database yang paling umum, seperti menjalankan kueri atau membuat tabel, tampilan, dan prosedur tersimpan.

Izinkan sambungan klien dari komputer Anda

Secara default, server Azure memungkinkan koneksi ke databasenya hanya dari layanan Azure, seperti aplikasi Azure Anda. Database baru membuka firewall-nya ke aplikasi App Service yang Anda buat.

Untuk mengakses database dari komputer lokal Anda, seperti dari Visual Studio, server Azure harus membuka firewall untuk mengizinkan akses untuk alamat IP publik komputer.

Jika diminta untuk menambahkan akses untuk klien lokal Anda, pastikan untuk memilih opsi untuk Mengizinkan alamat IP publik komputer Anda. Opsi ini membuat aturan firewall untuk mengizinkan alamat IP publik komputer lokal Anda. Kotak dialog sudah diisi dengan alamat IP komputer Anda saat ini.

Jika Anda tidak mendapatkan perintah untuk menambahkan akses untuk komputer lokal, Anda bisa masuk ke database Azure SQL Anda di portal Microsoft Azure dan pilih Atur firewall server di bilah menu atas. Pada halaman Jaringan di bawah Aturan firewall, pilih opsi untuk Menambahkan alamat IPv4 klien Anda.

Catatan

Jika penyedia layanan internet Anda mengubah alamat IP publik, Anda perlu mengonfigurasi ulang firewall untuk mengakses database Azure lagi.

Menyambungkan ke database Azure SQL secara lokal

  1. Dari menu Tampilan, pilih SQL Server Object Explorer.

  2. Di bagian atas jendela SQL Server Object Explorer , pilih ikon untuk Menambahkan SQL Server.

  3. Pada layar Sambungkan , koneksi Anda muncul di bawah simpul Azure . Lengkapi informasi untuk Nama Server, Nama Pengguna, Kata Sandi, dan Nama Database Anda, dan pilih Sambungkan.

    Cuplikan layar yang memperlihatkan konfigurasi koneksi database dari Visual Studio.

  4. Setelah Visual Studio selesai mengonfigurasi koneksi untuk instans SQL Database Anda, database Anda muncul di SQL Server Object Explorer. Perluas <nama koneksi Anda>>Database><nama database Anda>> untuk melihat data.

  5. Perluas Tabel, klik ToDoes kanan tabel, dan pilih Tampilkan Data untuk berinteraksi dengan data database.

    Cuplikan layar yang memperlihatkan menjelajahi objek SQL Database.

Memperbarui aplikasi dengan Migrasi Code First

Anda dapat menggunakan alat yang sudah dikenal di Visual Studio untuk memperbarui database dan aplikasi Anda di Azure. Dalam langkah ini, Anda menggunakan Migrasi Pertama Kode dalam Kerangka Kerja Entitas untuk mengubah skema database Anda dan menerbitkan perubahan ke Azure.

Untuk informasi selengkapnya tentang menggunakan Migrasi Pertama Kode Kerangka Kerja Entitas, lihat Memulai Dengan Kode Pertama Kerangka Kerja Entitas 6 menggunakan MVC 5.

Memperbarui model data Anda

Buka Model\Todo.cs di editor kode. Tambahkan properti berikut ke kelas ToDo:

public bool Done { get; set; }

Jalankan Migrasi Pertama Kode secara lokal

Jalankan beberapa perintah untuk membuat pembaruan pada database lokal Anda.

  1. Dari menu Alat, pilih Pengelola Paket NuGet>Konsol Pengelola Paket.

  2. Di jendela Konsol Manajer Paket, aktifkan Migrasi Pertama Kode:

    Enable-Migrations
    
  3. Tambahkan migrasi:

    Add-Migration AddProperty
    
  4. Perbarui database lokal:

    Update-Database
    
  5. Tekan Ctrl+F5 untuk menjalankan aplikasi. Uji tautan Edit, Detail, dan Buat Baru .

Jika aplikasi dimuat tanpa kesalahan, Migrasi Pertama Kode berhasil. Namun, halaman Anda masih terlihat sama karena logika aplikasi Anda belum menggunakan properti baru ini.

Menggunakan properti baru

Lakukan beberapa perubahan dalam kode Anda untuk melihat properti Done beraksi. Untuk tutorial ini, Anda mengubah Index dan tampilan Create untuk menggunakan properti baru.

  1. Buka Controllers\TodosController.cs, dan dalam Create() metode pada baris 52, tambahkan Done ke daftar properti dalam Bind atribut . Tanda tangan metode Anda Create() akan terlihat seperti kode berikut:

    public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)
    
  2. Buka Views\Todos\Create.cshtml, dan dalam kode Razor, perhatikan <div class="form-group"> elemen yang menggunakan model.Description dan <div class="form-group"> elemen yang menggunakan model.CreatedDate.

    Setelah kedua elemen ini, tambahkan elemen berikut <div class="form-group"> yang menggunakan model.Done:

    <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>
    
  3. Buka Views\Todos\Index.cshtml, dan tepat di atas elemen kosong <th></th> , tambahkan kode Razor berikut:

    <th>
        @Html.DisplayNameFor(model => model.Done)
    </th>
    
  4. <td> Di atas elemen yang berisi metode pembantuHtml.ActionLink(), tambahkan elemen lain <td> dengan kode Razor berikut:

    <td>
        @Html.DisplayFor(modelItem => item.Done)
    </td>
    
  5. Simpan semua file, dan tekan Ctrl+F5 untuk menjalankan aplikasi.

  6. Di aplikasi, tambahkan item to-do dan pilih Selesai. Item akan muncul di halaman beranda Anda sebagai item yang telah selesai. Tampilan Edit tidak memperlihatkan bidang Selesai , karena Anda tidak mengubah tampilan Edit .

Aktifkan Migrasi Pertama Kode di Azure

Setelah perubahan kode berfungsi, termasuk migrasi database, Anda dapat menerbitkannya ke aplikasi Azure dan memperbarui database Azure SQL Anda dengan Migrasi Pertama Kode juga.

  1. Di Penjelajah Solusi Visual Studio, klik kanan proyek Anda dan pilih Terbitkan.

  2. Pilih Tindakan> lainnyaEdit untuk membuka pengaturan penerbitan.

    Cuplikan layar yang menunjukkan cara membuka pengaturan publikasi.

  3. Di menu dropdown MyDatabaseContext , pilih koneksi database untuk database Azure SQL Anda.

  4. Pilih Jalankan Migrasi Pertama Kode (berjalan pada awal aplikasi), lalu pilih Simpan.

    Cuplikan layar yang memperlihatkan Aktifkan Migrasi Pertama Kode di aplikasi Azure.

Publikasikan perubahan Anda

Sekarang setelah Anda mengaktifkan Migrasi Pertama Kode di aplikasi Azure Anda, publikasikan perubahan kode Anda.

  1. Pada halaman Terbitkan, pilih Terbitkan.

  2. Di aplikasi web yang diterbitkan, coba tambahkan lebih banyak item to-do lagi dan pilih Selesai, dan item tersebut akan muncul di halaman beranda Anda sebagai item yang telah selesai.

    Semua item yang harus dilakukan yang ada masih ditampilkan. Saat Anda menerbitkan ulang aplikasi ASP.NET, data yang ada di database Azure SQL Anda tidak hilang. Selain itu, Migrasi Pertama Kode hanya mengubah skema data dan membiarkan data Anda tetap utuh.

    Cuplikan layar yang memperlihatkan aplikasi Azure setelah Migrasi Pertama Kode.

Streaming log aplikasi

Anda dapat melakukan streaming pesan pelacakan langsung dari aplikasi Azure ke Visual Studio.

Buka Controllers\TodosController.cs, dan perhatikan bahwa setiap tindakan dimulai dengan Trace.WriteLine() metode . Kode ini menunjukkan kepada Anda cara menambahkan pesan pelacakan ke aplikasi Azure Anda.

Aktifkan streaming log

  1. Pada halaman Visual Studio Publish , gulir ke bawah ke bagian Hosting .

  2. Pilih elipsis ... di kanan atas dan pilih Tampilkan log streaming.

    Cuplikan layar yang menunjukkan opsi Aktifkan streaming log.

    Log sekarang di-streaming ke jendela Output.

    Cuplikan layar yang memperlihatkan Streaming log di jendela Output.

    Anda belum melihat pesan pelacakan apa pun, karena saat pertama kali memilih Tampilkan log streaming, aplikasi Azure Anda mengatur tingkat pelacakan ke Error, yang hanya mencatat peristiwa kesalahan menggunakan metode .Trace.TraceError()

Ubah tingkat pelacakan

  1. Untuk mengubah tingkat pelacakan untuk menghasilkan pesan pelacakan lain, di bagian Hosting halaman Terbitkan , pilih ... di kanan atas lalu pilih Buka di portal Microsoft Azure.

  2. Pada halaman portal Microsoft Azure untuk aplikasi Anda, pilih Log App Service di bawah Pemantauan di menu sebelah kiri.

  3. Di bawah Pengelogan aplikasi (Sistem file), pilih Verbose di bawah Tingkat, lalu pilih Simpan.

    Petunjuk / Saran

    Anda dapat bereksperimen dengan tingkat pelacakan yang berbeda untuk melihat jenis pesan apa yang ditampilkan untuk setiap tingkat. Misalnya, tingkat Informasi mencakup semua log yang dibuat oleh Trace.TraceInformation(), Trace.TraceWarning(), dan Trace.TraceError(), tetapi tidak mencakup log yang dibuat oleh Trace.WriteLine().

  4. Di browser Anda, buka aplikasi daftar Azure to-do Anda lagi dan navigasikan di sekitar aplikasi. Pesan jejak seperti contoh berikut sekarang mengalir ke jendela Output di Visual Studio.

    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
    

Hentikan streaming log

Untuk menghentikan layanan streaming log, pilih ikon Hentikan pemantauan di jendela Output .

Cuplikan layar yang memperlihatkan Penghentian streaming log.

Membersihkan sumber daya

Di langkah-langkah sebelumnya, Anda membuat sumber daya Azure dalam grup sumber daya. Jika Anda tidak berharap membutuhkan sumber daya ini di masa mendatang, Anda dapat menghapusnya dengan menghapus grup sumber daya.

  1. Dari halaman Gambaran umum aplikasi web di portal Microsoft Azure, pilih tautan myResourceGroup di bawah Grup sumber daya.
  2. Di halaman grup sumber daya, pastikan sumber daya yang tercantum adalah sumber daya yang ingin Anda hapus.
  3. Pilih Hapus grup sumber daya, ketik myResourceGroup di kotak teks, lalu pilih Hapus.
  4. Konfirmasi lagi dengan memilih Hapus.

Buka tutorial berikutnya untuk mempelajari cara menggunakan identitas terkelola untuk meningkatkan keamanan koneksi Azure SQL Database.