Menyebarkan Aplikasi Web ASP.NET dengan SQL Server Compact menggunakan Visual Studio atau Visual Web Developer: Bermigrasi ke SQL Server - 10 dari 12
oleh Tom Dykstra
Rangkaian tutorial ini menunjukkan kepada Anda cara menyebarkan (menerbitkan) proyek aplikasi web ASP.NET yang menyertakan database SQL Server Compact dengan menggunakan Visual Studio 2012 RC atau Visual Studio Express 2012 RC for Web. Anda juga dapat menggunakan Visual Studio 2010 jika Anda menginstal Pembaruan Penerbitan Web. Untuk pengenalan seri ini, lihat tutorial pertama dalam seri ini.
Untuk tutorial yang menunjukkan fitur penyebaran yang diperkenalkan setelah rilis RC Visual Studio 2012, menunjukkan cara menyebarkan edisi SQL Server selain SQL Server Compact, dan menunjukkan cara menyebarkan ke Azure App Service Web Apps, lihat ASP.NET Penyebaran Web menggunakan Visual Studio.
Gambaran Umum
Tutorial ini menunjukkan kepada Anda cara bermigrasi dari SQL Server Compact ke SQL Server. Salah satu alasan Anda mungkin ingin melakukan itu adalah memanfaatkan fitur SQL Server yang tidak didukung SQL Server Compact, seperti prosedur tersimpan, pemicu, tampilan, atau replikasi. Untuk informasi selengkapnya tentang perbedaan antara SQL Server Compact dan SQL Server, lihat tutorial Menyebarkan SQL Server Compact.
SQL Server Express versus SQL Server penuh untuk Pengembangan
Setelah memutuskan untuk meningkatkan ke SQL Server, Anda mungkin ingin menggunakan SQL Server atau SQL Server Express di lingkungan pengembangan dan pengujian Anda. Selain perbedaan dukungan alat dan fitur mesin database, ada perbedaan dalam implementasi penyedia antara SQL Server Compact dan versi SQL Server lainnya. Perbedaan ini dapat menyebabkan kode yang sama menghasilkan hasil yang berbeda. Oleh karena itu, jika Anda memutuskan untuk mempertahankan SQL Server Compact sebagai database pengembangan, Anda harus menguji situs Anda secara menyeluruh di SQL Server atau SQL Server Express di lingkungan pengujian sebelum setiap penyebaran ke produksi.
Tidak seperti SQL Server Compact, SQL Server Express pada dasarnya adalah mesin database yang sama dan menggunakan penyedia .NET yang sama dengan SQL Server penuh. Ketika Anda menguji dengan SQL Server Express, Anda dapat yakin untuk mendapatkan hasil yang sama seperti yang Anda lakukan dengan SQL Server. Anda dapat menggunakan sebagian besar alat database yang sama dengan SQL Server Express yang dapat Anda gunakan dengan SQL Server (pengecualian penting sedang SQL Server Profiler), dan mendukung fitur lain dari SQL Server seperti prosedur tersimpan, tampilan, pemicu, dan replikasi. (Anda biasanya harus menggunakan SQL Server penuh di situs web produksi. SQL Server Express dapat berjalan di lingkungan hosting bersama, tetapi tidak dirancang untuk itu, dan banyak penyedia hosting tidak mendukungnya.)
Jika Anda menggunakan Visual Studio 2012, Anda biasanya memilih SQL Server Express LocalDB untuk lingkungan pengembangan Anda karena itulah yang diinstal secara default dengan Visual Studio. Namun, LocalDB tidak berfungsi di IIS, jadi untuk lingkungan pengujian Anda, Anda harus menggunakan SQL Server atau SQL Server Express.
Menggabungkan Database versus Memisahkannya
Aplikasi Contoso University memiliki dua database SQL Server Compact: database keanggotaan (aspnet.sdf) dan database aplikasi (School.sdf). Saat bermigrasi, Anda bisa memigrasikan database ini ke dua database terpisah atau ke database tunggal. Anda mungkin ingin menggabungkannya untuk memfasilitasi gabungan database antara database aplikasi dan database keanggotaan Anda. Paket hosting Anda mungkin juga memberikan alasan untuk menggabungkannya. Misalnya, penyedia hosting mungkin mengenakan biaya lebih untuk beberapa database atau bahkan mungkin tidak mengizinkan lebih dari satu database. Itulah masalahnya dengan akun hosting Cytanium Lite yang digunakan untuk tutorial ini, yang hanya memungkinkan satu database SQL Server.
Dalam tutorial ini, Anda akan memigrasikan dua database Anda dengan cara ini:
- Migrasikan ke dua database LocalDB di lingkungan pengembangan.
- Migrasikan ke dua database SQL Server Express di lingkungan pengujian.
- Migrasikan ke satu gabungan database SQL Server penuh di lingkungan produksi.
Pengingat: Jika Anda mendapatkan pesan kesalahan atau sesuatu tidak berfungsi saat Anda melalui tutorial, pastikan untuk memeriksa halaman pemecahan masalah.
Menginstal SQL Server Express
SQL Server Express secara otomatis diinstal secara default dengan Visual Studio 2010, tetapi secara default tidak diinstal dengan Visual Studio 2012. Untuk menginstal SQL Server 2012 Express, klik tautan berikut
Pilih ENU/x64/SQLEXPR_x64_ENU.exe atau ENU/x86/SQLEXPR_x86_ENU.exe, dan dalam wizard penginstalan terima pengaturan default. Untuk informasi selengkapnya tentang opsi penginstalan, lihat Menginstal SQL Server 2012 dari Wizard Penginstalan (Penyetelan).
Membuat database SQL Server Express untuk Lingkungan Pengujian
Langkah selanjutnya adalah membuat keanggotaan ASP.NET dan database Sekolah.
Dari menu Tampilan pilih Server Explorer (Database Explorer di Visual Web Developer), lalu klik kanan Data Connections dan pilih Buat Database SQL Server Baru.
Dalam kotak dialog Buat Database SQL Server Baru, masukkan ".\SQLExpress" di kotak Nama server dan "aspnet-Test" di kotak Nama database baru, lalu klik OK.
Ikuti prosedur yang sama untuk membuat database SQL Server Express School baru bernama "School-Test".
(Anda menambahkan "Uji" ke nama database ini karena nanti Anda akan membuat instans tambahan dari setiap database untuk lingkungan pengembangan, dan Anda harus dapat membedakan dua set database.)
Server Explorer sekarang memperlihatkan dua database baru.
Membuat Skrip Pemberian untuk Database Baru
Saat aplikasi berjalan di IIS di komputer pengembangan Anda, aplikasi mengakses database dengan menggunakan kredensial kumpulan aplikasi default. Namun, secara default, identitas kumpulan aplikasi tidak memiliki izin untuk membuka database. Jadi Anda harus menjalankan skrip untuk memberikan izin tersebut. Di bagian ini Anda membuat skrip yang akan Anda jalankan nanti untuk memastikan bahwa aplikasi dapat membuka database saat berjalan di IIS.
Di folder SolutionFiles solusi yang Anda buat di tutorial Menyebarkan ke Lingkungan Produksi , buat file SQL baru bernama Grant.sql. Salin perintah SQL berikut ke dalam file, lalu simpan dan tutup file:
IF NOT EXISTS (SELECT name FROM sys.server_principals WHERE name = 'IIS APPPOOL\DefaultAppPool')
BEGIN
CREATE LOGIN [IIS APPPOOL\DefaultAppPool]
FROM WINDOWS WITH DEFAULT_DATABASE=[master],
DEFAULT_LANGUAGE=[us_english]
END
GO
CREATE USER [ContosoUniversityUser]
FOR LOGIN [IIS APPPOOL\DefaultAppPool]
GO
EXEC sp_addrolemember 'db_owner', 'ContosoUniversityUser'
GO
Catatan
Skrip ini dirancang untuk bekerja dengan SQL Server 2008 dan dengan pengaturan IIS di Windows 7 seperti yang ditentukan dalam tutorial ini. Jika Anda menggunakan versi SQL Server atau Windows yang berbeda, atau jika Anda menyetel IIS di komputer Anda secara berbeda, perubahan pada skrip ini mungkin diperlukan. Untuk informasi selengkapnya tentang skrip SQL Server, lihat SQL Server Books Online.
Catatan
Catatan Keamanan Skrip ini memberikan izin db_owner kepada pengguna yang mengakses database pada durasi, yang akan Anda miliki di lingkungan produksi. Dalam beberapa skenario, Anda mungkin ingin menentukan pengguna yang memiliki izin pembaruan skema database penuh hanya untuk penyebaran, dan menentukan untuk run time pengguna lain yang memiliki izin hanya untuk membaca dan menulis data. Untuk informasi selengkapnya, lihat Meninjau Perubahan Web.config Otomatis untuk Migrasi Pertama Kode dalam Menyebarkan ke IIS sebagai Lingkungan Pengujian.
Mengonfigurasi Penyebaran Database untuk Lingkungan Pengujian
Selanjutnya, Anda akan mengonfigurasi Visual Studio sehingga akan melakukan tugas berikut untuk setiap database:
- Buat skrip SQL yang membuat struktur database sumber (tabel, kolom, batasan, dll.) di database tujuan.
- Buat skrip SQL yang menyisipkan data database sumber ke dalam tabel di database tujuan.
- Jalankan skrip yang dihasilkan, dan Berikan skrip yang Anda buat, di database tujuan.
Buka jendela Properti Proyek dan pilih tab Paket/Terbitkan SQL .
Pastikan bahwa Aktif (Rilis) atau Rilis dipilih di daftar drop-down Konfigurasi.
Klik Aktifkan Halaman ini.
Tab SQL Paket/Terbitkan biasanya dinonaktifkan karena menentukan metode penyebaran warisan. Untuk sebagian besar skenario, Anda harus mengonfigurasi penyebaran database di wizard Terbitkan Web . Migrasi dari SQL Server Compact ke SQL Server atau SQL Server Express adalah kasus khusus di mana metode ini adalah pilihan yang baik.
Klik Impor dari Web.config.
Visual Studio mencari string koneksi dalam file Web.config, menemukan satu untuk database keanggotaan dan satu untuk database Sekolah, dan menambahkan baris yang terkait dengan setiap string koneksi dalam tabel Entri Database. String koneksi yang ditemukannya adalah untuk database SQL Server Compact yang ada, dan langkah Anda berikutnya adalah mengonfigurasi bagaimana dan di mana menyebarkan database ini.
Anda memasukkan pengaturan penyebaran database di bagian Detail Entri Database di bawah tabel Entri Database . Pengaturan yang diperlihatkan di bagian Detail Entri Database berkaitan dengan baris mana pun dalam tabel Entri Database dipilih, seperti yang diperlihatkan dalam ilustrasi berikut ini.
Mengonfigurasi Pengaturan Penyebaran untuk Database Keanggotaan
Pilih baris DefaultConnection-Deployment dalam tabel Entri Database untuk mengonfigurasi pengaturan yang berlaku untuk database keanggotaan.
Di String koneksi untuk database tujuan, masukkan string koneksi yang menunjuk ke database keanggotaan SQL Server Express baru. Anda bisa mendapatkan string koneksi yang Anda butuhkan dari Server Explorer. Di Server Explorer, perluas Data Connections dan pilih database aspnetTest, lalu dari jendela Properti salin nilai String Koneksi.
String koneksi yang sama direproduseri di sini:
Data Source=.\SQLExpress;Initial Catalog=aspnet-Test;Integrated Security=True;Pooling=False
Salin dan tempel string koneksi ini ke string Koneksi untuk database tujuan di tab Paket/Terbitkan SQL.
Pastikan bahwa Tarik data dan/atau skema dari database yang sudah ada dipilih. Inilah yang menyebabkan skrip SQL dibuat secara otomatis dan dijalankan di database tujuan.
String Koneksi untuk nilai database sumber diekstrak dari file Web.config dan menunjuk ke database SQL Server Compact pengembangan. Ini adalah database sumber yang akan digunakan untuk menghasilkan skrip yang akan berjalan nanti di database tujuan. Karena Anda ingin menyebarkan versi produksi database, ubah "aspnet-Dev.sdf" menjadi "aspnet-Prod.sdf".
Ubah opsi skrip Database dari Skema Saja ke Skema dan data, karena Anda ingin menyalin data Anda (akun dan peran pengguna) serta struktur database.
Untuk mengonfigurasi penyebaran untuk menjalankan skrip pemberian yang Anda buat sebelumnya, Anda harus menambahkannya ke bagian Skrip Database . Klik Tambahkan Skrip, dan dalam kotak dialog Tambahkan Skrip SQL , navigasikan ke folder tempat Anda menyimpan skrip pemberian (ini adalah folder yang berisi file solusi Anda). Pilih file bernama Grant.sql, dan klik Buka.
Pengaturan untuk baris DefaultConnection-Deployment dalam Entri Database sekarang terlihat seperti ilustrasi berikut ini:
Mengonfigurasi Pengaturan Penyebaran untuk Database Sekolah
Selanjutnya, pilih baris SchoolContext-Deployment di tabel Entri Database untuk mengonfigurasi pengaturan penyebaran untuk database Sekolah.
Anda dapat menggunakan metode yang sama dengan yang Anda gunakan sebelumnya untuk mendapatkan string koneksi untuk database SQL Server Express baru. Salin string koneksi ini ke string Koneksi untuk database tujuan di tab Paket/Terbitkan SQL.
Data Source=.\SQLExpress;Initial Catalog=School-Test;Integrated Security=True;Pooling=False
Pastikan bahwa Tarik data dan/atau skema dari database yang sudah ada dipilih.
String Koneksi untuk nilai database sumber diekstrak dari file Web.config dan menunjuk ke database SQL Server Compact pengembangan. Ubah "School-Dev.sdf" menjadi "School-Prod.sdf" untuk menyebarkan versi produksi database. (Anda tidak pernah membuat file School-Prod.sdf di folder App_Data, jadi Anda akan menyalin file tersebut dari lingkungan pengujian ke folder App_Data di folder proyek ContosoUniversity nanti.)
Ubah opsi skrip Database menjadi Skema dan data.
Anda juga ingin menjalankan skrip untuk memberikan izin baca dan tulis untuk database ini ke identitas kumpulan aplikasi, jadi tambahkan file skrip Grant.sql seperti yang Anda lakukan untuk database keanggotaan.
Setelah selesai, pengaturan untuk baris SchoolContext-Deployment di Entri Database terlihat seperti ilustrasi berikut ini:
Simpan perubahan ke tab Paket/Terbitkan SQL .
Salin file School-Prod.sdf dari folder c:\inetpub\wwwroot\ContosoUniversity\App_Data ke folder App_Data di proyek ContosoUniversity.
Menentukan Mode Yang Ditransaksikan untuk Skrip Pemberian
Proses penyebaran menghasilkan skrip yang menyebarkan skema database dan data. Secara default, skrip ini berjalan dalam transaksi. Namun, skrip kustom (seperti skrip pemberian) secara default tidak berjalan dalam transaksi. Jika proses penyebaran mencampur mode transaksi, Anda mungkin mendapatkan kesalahan waktu habis saat skrip berjalan selama penyebaran. Di bagian ini, Anda mengedit file proyek untuk mengonfigurasi skrip kustom untuk dijalankan dalam transaksi.
Di Penjelajah Solusi, klik kanan proyek ContosoUniversity dan pilih Bongkar Proyek.
Kemudian klik kanan proyek lagi dan pilih Edit ContosoUniversity.csproj.
Editor Visual Studio memperlihatkan konten XML file proyek. Perhatikan bahwa ada beberapa PropertyGroup
elemen. (Dalam gambar, konten elemen telah dihilangkan PropertyGroup
.)
Yang pertama, yang tidak Condition
memiliki atribut, adalah untuk pengaturan yang berlaku terlepas dari konfigurasi build. Satu PropertyGroup
elemen hanya berlaku untuk konfigurasi build Debug (perhatikan Condition
atribut ), satu hanya berlaku untuk konfigurasi build Rilis, dan satu hanya berlaku untuk konfigurasi Build pengujian. PropertyGroup
Dalam elemen untuk konfigurasi build Rilis, Anda akan melihat PublishDatabaseSettings
elemen yang berisi pengaturan yang Anda masukkan pada tab Paket/Terbitkan SQL. Ada Object
elemen yang sesuai dengan masing-masing skrip pemberian yang Anda tentukan (perhatikan dua instans "Grant.sql"). Secara default, Transacted
atribut Source
elemen untuk setiap skrip pemberian adalah False
.
Ubah nilai Transacted
atribut elemen menjadi Source
True
.
Simpan dan tutup file proyek, lalu klik kanan proyek di Penjelajah Solusi dan pilih Muat Ulang Proyek.
Menyiapkan Transformasi Web.Config untuk String Koneksi
String koneksi untuk database SQL Express baru yang Anda masukkan pada tab Paket/Terbitkan SQL digunakan oleh Web Deploy hanya untuk memperbarui database tujuan selama penyebaran. Anda masih harus menyiapkan transformasi Web.config sehingga string koneksi dalam file Web.config yang disebarkan menunjuk ke database SQL Server Express baru. (Saat Anda menggunakan tab Paket/Terbitkan SQL , Anda tidak dapat mengonfigurasi string koneksi di profil penerbitan.)
Buka Web.Test.config dan ganti connectionStrings
elemen dengan connectionStrings
elemen dalam contoh berikut. (Pastikan Anda hanya menyalin elemen connectionStrings, bukan kode di sekitarnya yang ditampilkan di sini untuk memberikan konteks.)
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
<add name="DefaultConnection"
connectionString="Data Source=.\SQLExpress;Initial Catalog=aspnet-Test;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True"
providerName="System.Data.SqlClient"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
<add name="SchoolContext"
connectionString="Data Source=.\SQLExpress;Initial Catalog=School-Test;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True"
providerName="System.Data.SqlClient"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
<!-- appSettings element, comments, and system.web element -->
</configuration>
Kode ini menyebabkan connectionString
atribut dan providerName
dari setiap add
elemen diganti dalam file Web.config yang disebarkan. String koneksi ini tidak identik dengan string yang Anda masukkan di tab Paket/Terbitkan SQL . Pengaturan "MultipleActiveResultSets=True" telah ditambahkan ke pengaturan tersebut karena diperlukan untuk Kerangka Kerja Entitas dan Penyedia Universal.
Menginstal SQL Server Compact
Paket SqlServerCompact NuGet menyediakan rakitan mesin database SQL Server Compact untuk aplikasi Contoso University. Tetapi sekarang bukan aplikasi tetapi Web Deploy yang harus dapat membaca database SQL Server Compact, untuk membuat skrip untuk dijalankan dalam database SQL Server. Untuk mengaktifkan Web Deploy untuk membaca database SQL Server Compact, instal SQL Server Compact di komputer pengembangan dengan menggunakan tautan berikut: Microsoft SQL Server Compact 4.0 SP1.
Menyebarkan ke Lingkungan Pengujian
Untuk menerbitkan ke lingkungan Uji, Anda harus membuat profil penerbitan yang dikonfigurasi untuk menggunakan tab Paket/Terbitkan SQL untuk penerbitan database alih-alih menerbitkan pengaturan database profil.
Pertama, hapus profil Uji yang ada.
Di Penjelajah Solusi, klik kanan proyek ContosoUniversity, dan klik Terbitkan.
Pilih tab Profil .
Klik Kelola Profil.
Pilih Uji, klik Hapus, lalu klik Tutup.
Tutup panduan Terbitkan Web untuk menyimpan perubahan ini.
Selanjutnya, buat profil Uji baru dan gunakan untuk menerbitkan proyek.
Di Penjelajah Solusi, klik kanan proyek ContosoUniversity, dan klik Terbitkan.
Pilih tab Profil .
Pilih <Baru...> dari daftar drop-down, dan masukkan "Uji" sebagai nama profil.
Dalam kotak URL Layanan , masukkan localhost.
Dalam kotak Situs/aplikasi , masukkan Situs Web Default/ContosoUniversity.
Dalam kotak URL Tujuan , masukkan http://localhost/ContosoUniversity/
.
Klik Berikutnya.
Tab Pengaturan memperingatkan Anda bahwa tab Paket/Terbitkan SQL telah dikonfigurasi, dan memberi Anda kesempatan untuk menimpanya dengan mengklik aktifkan penyempurnaan penerbitan database baru. Untuk penyebaran ini, Anda tidak ingin mengganti pengaturan tab Paket/Terbitkan SQL , jadi cukup klik Berikutnya.
Pesan pada tab Pratinjau menunjukkan bahwa Tidak ada database yang dipilih untuk diterbitkan, tetapi ini hanya berarti penerbitan database tidak dikonfigurasi di profil penerbitan.
Klik Terbitkan.
Visual Studio menyebarkan aplikasi dan membuka browser ke halaman beranda situs di lingkungan pengujian. Jalankan halaman Instruktur untuk melihat bahwa halaman tersebut menampilkan data yang sama dengan yang Anda lihat sebelumnya. Jalankan halaman Tambahkan Siswa , tambahkan siswa baru, lalu tampilkan siswa baru di halaman Siswa . Ini memverifikasi bahwa Anda bisa memperbarui database. Pilih halaman Perbarui Kredit (Anda harus masuk) untuk memverifikasi bahwa database keanggotaan telah disebarkan dan Anda memiliki akses ke database tersebut.
Membuat Database SQL Server untuk Lingkungan Produksi
Sekarang setelah Anda menyebarkan ke lingkungan pengujian, Anda siap untuk menyiapkan penyebaran ke produksi. Anda mulai seperti yang Anda lakukan untuk lingkungan pengujian, dengan membuat database untuk disebarkan. Seperti yang Anda ingat dari Gambaran Umum, paket hosting Cytanium Lite hanya memungkinkan database SQL Server tunggal, sehingga Anda hanya akan menyiapkan satu database, bukan dua. Semua tabel dan data dari keanggotaan dan database SQL Server Compact Sekolah akan disebarkan ke dalam satu database SQL Server dalam produksi.
Buka panel kontrol Stanium di http://panel.cytanium.com. Tahan mouse di atas Database lalu klik SQL Server 2008.
Di halaman SQL Server 2008, klik Buat Database.
Beri nama database "Sekolah" dan klik Simpan. (Halaman secara otomatis menambahkan awalan "contosou", sehingga nama yang efektif akan menjadi "contosouSchool".)
Pada halaman yang sama, klik Buat Pengguna. Di server Cytanium, daripada menggunakan keamanan Windows terintegrasi dan membiarkan identitas kumpulan aplikasi membuka database Anda, Anda akan membuat pengguna yang memiliki otoritas untuk membuka database Anda. Anda akan menambahkan kredensial pengguna ke string koneksi yang masuk ke file Web.config produksi. Dalam langkah ini Anda membuat kredensial tersebut.
Isi bidang yang diperlukan di halaman Properti Pengguna SQL :
- Masukkan "ContosoUniversityUser" sebagai nama.
- Masukkan kata sandi.
- Pilih contosouSchool sebagai database default.
- Pilih kotak centang contosouSchool .
Mengonfigurasi Penyebaran Database untuk Lingkungan Produksi
Sekarang Anda siap untuk menyiapkan pengaturan penyebaran database di tab Paket/Terbitkan SQL , seperti yang Anda lakukan sebelumnya untuk lingkungan pengujian.
Buka jendela Properti Proyek, pilih tab Paket/Terbitkan SQL, dan pastikan Bahwa Aktif (Rilis) atau Rilis dipilih di daftar drop-down Konfigurasi.
Saat Anda mengonfigurasi pengaturan penyebaran untuk setiap database, perbedaan utama antara apa yang Anda lakukan untuk lingkungan produksi dan pengujian adalah cara Anda mengonfigurasi string koneksi. Untuk lingkungan pengujian, Anda memasukkan string koneksi database tujuan yang berbeda, tetapi untuk lingkungan produksi tujuan string koneksi akan sama untuk kedua database. Ini karena Anda menyebarkan kedua database ke satu database dalam produksi.
Mengonfigurasi Pengaturan Penyebaran untuk Database Keanggotaan
Untuk mengonfigurasi pengaturan yang berlaku untuk database keanggotaan, pilih baris DefaultConnection-Deployment dalam tabel Entri Database .
Di String koneksi untuk database tujuan, masukkan string koneksi yang menunjuk ke database SQL Server produksi baru yang baru saja Anda buat. Anda bisa mendapatkan string koneksi dari email selamat datang Anda. Bagian yang relevan dari email berisi sampel berikut string koneksi:
Data Source=vserver01.cytanium.com;Initial Catalog={myDataBase};User Id={myUsername};Password={myPassword};
Setelah Anda mengganti tiga variabel, string koneksi yang Anda butuhkan terlihat seperti contoh ini:
Data Source=vserver01.cytanium.com;Initial Catalog=contosouSchool;User Id=ContosoUniversityUser;Password=Password;
Salin dan tempel string koneksi ini ke string Koneksi untuk database tujuan di tab Paket/Terbitkan SQL.
Pastikan bahwa Penarikan data dan/atau skema dari database yang sudah ada masih dipilih, dan opsi pembuatan skrip Database masih Skema dan Data.
Dalam kotak Skrip Database , kosongkan kotak centang di samping skrip Grant.sql.
Mengonfigurasi Pengaturan Penyebaran untuk Database Sekolah
Selanjutnya, pilih baris SchoolContext-Deployment di tabel Entri Database untuk mengonfigurasi pengaturan database Sekolah.
Salin string koneksi yang sama ke string Koneksi untuk database tujuan yang Anda salin ke bidang tersebut untuk database keanggotaan.
Pastikan bahwa Penarikan data dan/atau skema dari database yang sudah ada masih dipilih, dan opsi pembuatan skrip Database masih Skema dan Data.
Dalam kotak Skrip Database , kosongkan kotak centang di samping skrip Grant.sql.
Simpan perubahan ke tab Paket/Terbitkan SQL .
Menyiapkan Transformasi Web.Config untuk String Koneksi ke Database Produksi
Selanjutnya, Anda akan menyiapkan transformasiWeb.config sehingga string koneksi dalam file Web.config yang disebarkan untuk menunjuk ke database produksi baru. string koneksi yang Anda masukkan pada tab Paket/Terbitkan SQL untuk digunakan Web Deploy sama dengan yang perlu digunakan aplikasi, kecuali untuk penambahan MultipleResultSets
opsi.
Buka Web.Production.config dan ganti connectionStrings
elemen dengan connectionStrings
elemen yang terlihat seperti contoh berikut. (Hanya salin connectionStrings
elemen , bukan tag di sekitarnya yang disediakan untuk menampilkan konteks.)
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
<add name="DefaultConnection"
connectionString="Data Source=vserver01.cytanium.com;Initial Catalog=contosouSchool;User Id=ContosoUniversityUser;Password=Password;MultipleActiveResultSets=True"
providerName="System.Data.SqlClient"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
<add name="SchoolContext"
connectionString="Data Source=vserver01.cytanium.com;Initial Catalog=contosouSchool;User Id=ContosoUniversityUser;Password=Password;MultipleActiveResultSets=True"
providerName="System.Data.SqlClient"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
<!-- appSettings element, comments, and system.web element -->
</configuration>
Terkadang Anda melihat saran yang memberi tahu Anda untuk selalu mengenkripsi string koneksi dalam file Web.config . Ini mungkin sesuai jika Anda menyebarkan ke server di jaringan perusahaan Anda sendiri. Namun, ketika Anda menyebarkan ke lingkungan hosting bersama, Anda mempercayai praktik keamanan penyedia hosting, dan tidak perlu atau praktis untuk mengenkripsi string koneksi.
Menyebarkan ke Lingkungan Produksi
Sekarang Anda siap untuk menyebarkan ke produksi. Web Deploy akan membaca database SQL Server Compact di folder App_Data proyek Anda dan membuat ulang semua tabel dan data mereka dalam database SQL Server produksi. Untuk menerbitkan dengan menggunakan pengaturan tab Web Paket/Terbitkan , Anda harus membuat profil penerbitan baru untuk produksi.
Pertama, hapus profil Produksi yang ada seperti yang Anda lakukan pada profil Uji sebelumnya.
Di Penjelajah Solusi, klik kanan proyek ContosoUniversity, dan klik Terbitkan.
Pilih tab Profil .
Klik Kelola Profil.
Pilih Produksi, klik Hapus, lalu klik Tutup.
Tutup panduan Terbitkan Web untuk menyimpan perubahan ini.
Selanjutnya, buat profil Produksi baru dan gunakan untuk menerbitkan proyek.
Di Penjelajah Solusi, klik kanan proyek ContosoUniversity, dan klik Terbitkan.
Pilih tab Profil .
Klik Impor, dan pilih file .publishsettings yang Anda unduh sebelumnya.
Pada tab Koneksi , ubah URL Tujuan ke URL sementara yang benar, yang dalam contoh ini adalah http://contosouniversity.com.vserver01.cytanium.com
.
Ganti nama profil menjadi Produksi. (Pilih tab Profil dan klik Kelola Profil untuk melakukannya).
Tutup panduan Terbitkan Web untuk menyimpan perubahan Anda.
Dalam aplikasi nyata di mana database sedang diperbarui dalam produksi, Anda akan melakukan dua langkah tambahan sekarang sebelum Anda menerbitkan:
- Unggah app_offline.htm, seperti yang ditunjukkan dalam tutorial Menyebarkan ke Lingkungan Produksi .
- Gunakan fitur File Manager dari panel kontrol Cytanium untuk menyalin file aspnet-Prod.sdf dan School-Prod.sdf dari situs produksi ke folder App_Data proyek ContosoUniversity. Ini memastikan bahwa data yang Anda sebarkan ke database SQL Server baru menyertakan pembaruan terbaru yang dibuat oleh situs web produksi Anda.
Di toolbar Terbitkan Web One Click , pastikan profil Produksi dipilih, lalu klik Terbitkan.
Jika Anda mengunggah app_offline.htm sebelum menerbitkan, Anda harus menggunakan utilitas File Manager di panel kontrol Stanium untuk menghapus app_offline.htm sebelum Anda menguji. Anda juga dapat secara bersamaan menghapus file .sdf dari folder App_Data .
Anda sekarang dapat membuka browser dan membuka URL situs publik Anda untuk menguji aplikasi dengan cara yang sama seperti yang Anda lakukan setelah menyebarkan ke lingkungan pengujian.
Beralih ke SQL Server Express LocalDB dalam Pengembangan
Seperti yang dijelaskan dalam Gambaran Umum, umumnya yang terbaik adalah menggunakan mesin database yang sama dalam pengembangan yang Anda gunakan dalam pengujian dan produksi. (Ingatlah bahwa keuntungan menggunakan SQL Server Express dalam pengembangan adalah bahwa database akan bekerja sama dalam lingkungan pengembangan, pengujian, dan produksi Anda.) Di bagian ini Anda akan menyiapkan proyek ContosoUniversity untuk menggunakan SQL Server Express LocalDB saat menjalankan aplikasi dari Visual Studio.
Cara paling sederhana untuk melakukan migrasi ini adalah dengan membiarkan Kode Pertama dan sistem keanggotaan membuat kedua database pengembangan baru untuk Anda. Menggunakan metode ini untuk bermigrasi memerlukan tiga langkah:
- Ubah string koneksi untuk menentukan database SQL Express LocalDB baru.
- Jalankan Alat Administrasi Situs Web untuk membuat pengguna administrator. Ini membuat database keanggotaan.
- Gunakan perintah database pembaruan Migrasi Pertama Kode untuk membuat dan menyemai database aplikasi.
Memperbarui String Koneksi dalam file Web.config
Buka file Web.config dan ganti connectionStrings
elemen dengan kode berikut:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-Dev.mdf;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />
<add name="SchoolContext" connectionString="Data Source=(LocalDb)\v11.0;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\School-Dev.mdf;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
Membuat Database Keanggotaan
Di Penjelajah Solusi, pilih proyek ContosoUniversity, lalu klik konfigurasi ASP.NET di menu Proyek.
Pada tab Keamanan.
Klik Buat atau Kelola Peran, lalu buat peran Administrator .
Kembali ke tab Keamanan.
Klik Buat pengguna, lalu pilih kotak centang Administrator dan buat pengguna bernama admin.
Tutup Alat Administrasi Situs Web.
Membuat Database Sekolah
Buka jendela Konsol Manajer Paket.
Di daftar drop-down Proyek default , pilih proyek ContosoUniversity.DAL.
Masukkan perintah berikut:
update-database
Migrasi Pertama Kode menerapkan migrasi Awal yang membuat database lalu menerapkan migrasi AddBirthDate, lalu menjalankan metode Seed.
Jalankan situs dengan menekan Control-F5. Seperti yang Anda lakukan untuk lingkungan pengujian dan produksi, jalankan halaman Tambahkan Siswa , tambahkan siswa baru, lalu lihat siswa baru di halaman Siswa . Ini memverifikasi bahwa database Sekolah dibuat dan diinisialisasi dan Anda telah membaca dan menulis akses ke database tersebut.
Pilih halaman Perbarui Kredit dan masuk untuk memverifikasi bahwa database keanggotaan telah disebarkan dan Anda memiliki akses ke database tersebut. Jika Anda tidak memigrasikan akun pengguna, buat akun administrator lalu pilih halaman Perbarui Kredit untuk memverifikasi bahwa akun tersebut berfungsi.
Membersihkan File SQL Server Compact
Anda tidak lagi memerlukan file dan paket NuGet yang disertakan untuk mendukung SQL Server Compact. Jika Anda mau (langkah ini tidak diperlukan), Anda dapat membersihkan file dan referensi yang tidak diperlukan.
Di Penjelajah Solusi, hapus file .sdf dari folder App_Data dan folder amd64 dan x86 dari folder bin.
Di Penjelajah Solusi, klik kanan solusi (bukan salah satu proyek), lalu klik Kelola Paket NuGet untuk Solusi.
Di panel kiri kotak dialog Kelola Paket NuGet , pilih Paket terinstal.
Pilih paket EntityFramework.SqlServerCompact dan klik Kelola.
Dalam kotak dialog Pilih Proyek , kedua proyek dipilih. Untuk menghapus instalan paket di kedua proyek, kosongkan kedua kotak centang, lalu klik OK.
Dalam kotak dialog yang menanyakan apakah Anda ingin menghapus instalan paket dependen juga, klik Tidak. Salah satunya adalah paket Kerangka Kerja Entitas yang harus Anda simpan.
Ikuti prosedur yang sama untuk menghapus instalan paket SqlServerCompact . (Paket harus dihapus instalasinya dalam urutan ini karena paket EntityFramework.SqlServerCompact bergantung pada paket SqlServerCompact .)
Anda sekarang telah berhasil bermigrasi ke SQL Server Express dan SQL Server penuh. Dalam tutorial berikutnya Anda akan membuat perubahan database lain, dan Anda akan melihat cara menyebarkan perubahan database saat database pengujian dan produksi Anda menggunakan SQL Server Express dan SQL Server penuh.