Bagikan melalui


Menyebarkan Aplikasi Web ASP.NET dengan SQL Server Compact menggunakan Visual Studio atau Pengembang Web Visual: Menyebarkan ke IIS sebagai Lingkungan Pengujian - 5 dari 12

oleh Tom Dykstra

Unduh Proyek Starter

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 cara menyebarkan aplikasi web ASP.NET ke IIS di komputer lokal.

Saat mengembangkan aplikasi, Anda umumnya mengujinya dengan menjalankannya di Visual Studio. Secara default, ini berarti Anda menggunakan Visual Studio Development Server (juga dikenal sebagai Cassini). Server Pengembangan Visual Studio memudahkan pengujian selama pengembangan di Visual Studio, tetapi tidak berfungsi persis seperti IIS. Akibatnya, ada kemungkinan bahwa aplikasi akan berjalan dengan benar ketika Anda mengujinya di Visual Studio, tetapi gagal ketika disebarkan ke IIS di lingkungan hosting.

Anda dapat menguji aplikasi dengan lebih andal dengan cara berikut:

  1. Gunakan IIS Express atau IIS penuh alih-alih Visual Studio Development Server saat Anda menguji di Visual Studio selama pengembangan. Metode ini umumnya meniru lebih akurat bagaimana situs Anda akan berjalan di bawah IIS. Namun, metode ini tidak menguji proses penyebaran Anda atau memvalidasi bahwa hasil proses penyebaran akan berjalan dengan benar.
  2. Sebarkan aplikasi ke IIS di komputer pengembangan Anda dengan menggunakan proses yang sama yang akan Anda gunakan nanti untuk menyebarkannya ke lingkungan produksi Anda. Metode ini memvalidasi proses penyebaran Anda selain memvalidasi bahwa aplikasi Anda akan berjalan dengan benar di bawah IIS.
  3. Sebarkan aplikasi ke lingkungan pengujian yang sedekat mungkin dengan lingkungan produksi Anda. Karena lingkungan produksi untuk tutorial ini adalah penyedia hosting pihak ketiga, lingkungan pengujian yang ideal akan menjadi akun kedua dengan penyedia hosting. Anda akan menggunakan akun kedua ini hanya untuk pengujian, tetapi akan disiapkan dengan cara yang sama seperti akun produksi.

Tutorial ini menunjukkan langkah-langkah untuk opsi 2. Panduan untuk opsi 3 disediakan di akhir tutorial Menyebarkan ke Lingkungan Produksi , dan di akhir tutorial ini ada tautan ke sumber daya untuk opsi 1.

Pengingat: Jika Anda mendapatkan pesan kesalahan atau sesuatu tidak berfungsi saat Anda melalui tutorial, pastikan untuk memeriksa halaman pemecahan masalah.

Mengonfigurasi Aplikasi untuk Dijalankan dalam Kepercayaan Sedang

Sebelum menginstal IIS dan menyebarkannya, Anda akan mengubah pengaturan file Web.config untuk membuat situs berjalan lebih seperti yang akan terjadi di lingkungan hosting bersama yang khas.

Penyedia hosting biasanya menjalankan situs web Anda dengan kepercayaan sedang, yang berarti ada beberapa hal yang tidak diizinkan untuk dilakukan. Misalnya, kode aplikasi tidak dapat mengakses registri Windows dan tidak dapat membaca atau menulis file yang berada di luar hierarki folder aplikasi Anda. Secara default aplikasi Anda berjalan dengan kepercayaan tinggi pada komputer lokal Anda, yang berarti bahwa aplikasi mungkin dapat melakukan hal-hal yang akan gagal ketika Anda menyebarkannya ke produksi. Oleh karena itu, untuk membuat lingkungan pengujian lebih akurat mencerminkan lingkungan produksi, Anda akan mengonfigurasi aplikasi untuk berjalan dalam kepercayaan sedang.

Dalam file Web.config aplikasi, tambahkan elemen kepercayaan di elemen system.web , seperti yang ditunjukkan dalam contoh ini.

<configuration>
  <!-- Settings -->
  <system.web>
    <trust level="Medium" />
    <!-- Settings -->
  </system.web>
</configuration>

Aplikasi sekarang akan berjalan dalam kepercayaan sedang pada IIS bahkan di komputer lokal Anda. Pengaturan ini memungkinkan Anda untuk menangkap sedini mungkin setiap upaya oleh kode aplikasi untuk melakukan sesuatu yang akan gagal dalam produksi.

Catatan

Jika Anda menggunakan Migrasi Pertama Kode Kerangka Kerja Entitas, pastikan Anda telah menginstal versi 5.0 atau yang lebih baru. Dalam Entity Framework versi 4.3, Migrasi memerlukan kepercayaan penuh untuk memperbarui skema database.

Menginstal IIS dan Web Deploy

Untuk menyebarkan ke IIS di komputer pengembangan, Anda harus menginstal IIS dan Web Deploy. Ini tidak termasuk dalam konfigurasi Windows 7 default. Jika Anda telah menginstal IIS dan Web Deploy, lewati ke bagian berikutnya.

Menggunakan Penginstal Platform Web adalah cara yang disukai untuk menginstal IIS dan Web Deploy, karena Penginstal Platform Web menginstal konfigurasi yang direkomendasikan untuk IIS dan secara otomatis menginstal prasyarat untuk IIS dan Web Deploy jika perlu.

Untuk menjalankan Penginstal Platform Web untuk menginstal IIS dan Web Deploy, gunakan tautan berikut. Jika Anda sudah menginstal IIS, Web Deploy, atau komponen yang diperlukan, Alat Penginstal Platform Web hanya menginstal apa yang hilang.

Mengatur Kumpulan Aplikasi Default ke .NET 4

Setelah menginstal IIS, jalankan IIS Manager untuk memastikan bahwa .NET Framework versi 4 ditetapkan ke kumpulan aplikasi default.

Dari menu Mulai Windows, pilih Jalankan, masukkan "inetmgr", lalu klik OK. (Jika perintah Jalankan tidak ada di menu Mulai , Anda dapat menekan Tombol Windows dan R untuk membukanya. Atau klik kanan bilah tugas, klik Properti, pilih tab Menu Mulai , klik Kustomisasi, dan pilih Jalankan perintah.)

Di panel Connections, perluas simpul server dan pilih Kumpulan Aplikasi. Di panel Kumpulan Aplikasi , jika DefaultAppPool ditetapkan ke .NET framework versi 4 seperti dalam ilustrasi berikut, lewati ke bagian berikutnya.

Inetmgr_showing_4.0_app_pools

Jika Anda hanya melihat dua kumpulan aplikasi dan keduanya diatur ke .NET Framework 2.0, Anda harus menginstal ASP.NET 4 di IIS:

  • Buka jendela prompt perintah dengan mengklik kanan Prompt Perintah di menu Mulai Windows dan pilih Jalankan sebagai Administrator. Kemudian jalankan aspnet_regiis.exe untuk menginstal ASP.NET 4 di IIS, menggunakan perintah berikut. (Dalam sistem 64-bit, ganti "Framework" dengan "Framework64".)

    cd %windir%\Microsoft.NET\Framework\v4.0.30319
    aspnet_regiis.exe –iru
    

    aspnet_regiis_installing_ASP.NET_4

    Perintah ini membuat kumpulan aplikasi baru untuk .NET Framework 4, tetapi kumpulan aplikasi default masih akan diatur ke 2.0. Anda akan menyebarkan aplikasi yang menargetkan .NET 4 ke kumpulan aplikasi tersebut, jadi Anda harus mengubah kumpulan aplikasi menjadi .NET 4.

Jika Anda menutup Manajer IIS, jalankan lagi, perluas simpul server, dan klik Kumpulan Aplikasi untuk menampilkan panel Kumpulan Aplikasi lagi.

Di panel Kumpulan Aplikasi , klik DefaultAppPool, lalu di panel Tindakan klik Pengaturan Dasar.

Inetmgr_selecting_Basic_Settings_for_app_pool

Dalam kotak dialog Edit Kumpulan Aplikasi, ubah versi .NET Framework menjadi .NET Framework v4.0.30319 dan klik OK.

Selecting_.NET_4_for_DefaultAppPool

Anda sekarang siap untuk menerbitkan ke IIS.

Menerbitkan ke IIS

Ada beberapa cara untuk menyebarkan menggunakan Visual Studio 2010 dan Web Deploy:

  • Gunakan penerbitan satu klik Visual Studio.
  • Buat paket penyebaran dan instal menggunakan UI Manajer IIS. Paket penyebaran terdiri dari file .zip yang berisi semua file dan metadata yang diperlukan untuk menginstal situs di IIS.
  • Buat paket penyebaran dan instal menggunakan baris perintah.

Proses yang Anda lalui dalam tutorial sebelumnya untuk menyiapkan Visual Studio untuk mengotomatiskan tugas penyebaran yang berlaku untuk ketiga metode ini. Dalam tutorial ini Anda akan menggunakan metode pertama dari metode ini. Untuk informasi tentang menggunakan paket penyebaran, lihat ASP.NET Peta Konten Penyebaran.

Sebelum menerbitkan, pastikan Anda menjalankan Visual Studio dalam mode administrator. (Di menu Mulai Windows 7, klik kanan ikon untuk versi Visual Studio yang Anda gunakan dan pilih Jalankan sebagai Administrator.) Mode administrator diperlukan untuk menerbitkan hanya ketika Anda menerbitkan ke IIS di komputer lokal.

Di Penjelajah Solusi, klik kanan proyek ContosoUniversity (bukan proyek ContosoUniversity.DAL) dan pilih Terbitkan.

Wizard Terbitkan Web muncul.

Publish_Web_wizard_Profile_tab

Di daftar drop-down, pilih <Baru...>.

Dalam kotak dialog Profil Baru , masukkan "Uji", lalu klik OK.

New_Profile_dialog_box

Nama ini sama dengan simpul tengah file transformasi Web.Test.config yang Anda buat sebelumnya. Korespondensi inilah yang menyebabkan transformasi Web.Test.config diterapkan saat Anda menerbitkan dengan menggunakan profil ini.

Panduan secara otomatis maju ke tab Koneksi .

Dalam kotak URL Layanan , masukkan localhost.

Dalam kotak Situs/aplikasi , masukkan Situs Web Default/ContosoUniversity.

Dalam kotak URL Tujuan , masukkan http://localhost/ContosoUniversity.

Pengaturan URL Tujuan tidak diperlukan. Ketika Visual Studio selesai menyebarkan aplikasi, visual Studio secara otomatis membuka browser default Anda ke URL ini. Jika Anda tidak ingin browser terbuka secara otomatis setelah penyebaran, biarkan kotak ini kosong.

Publish_Web_wizard_Connection_tab_Test

Klik Validasi Koneksi untuk memverifikasi bahwa pengaturan sudah benar dan Anda bisa tersambung ke IIS di komputer lokal.

Tanda centang hijau memverifikasi bahwa koneksi berhasil.

Publish_Web_wizard_Connection_tab_validated

Klik Berikutnya untuk melanjutkan ke tab Pengaturan .

Kotak drop-down Konfigurasi menentukan konfigurasi build yang akan disebarkan. Nilai defaultnya adalah Rilis, yang Anda inginkan.

Biarkan kotak centang Hapus file tambahan di tujuan dikosongkan. Karena ini adalah penyebaran pertama Anda, belum akan ada file apa pun di folder tujuan.

Di bagian Database, masukkan nilai berikut ini di kotak string koneksi untuk SchoolContext:

Data Source=|DataDirectory|School-Prod.sdf

Proses penyebaran akan menempatkan string koneksi ini dalam file Web.config yang disebarkan karena Gunakan string koneksi ini saat runtime dipilih.

Selain itu, di bawah SchoolContext, pilih Terapkan Migrasi Pertama Kode. Opsi ini menyebabkan proses penyebaran mengonfigurasi file Web.config yang disebarkan untuk menentukan penginisialisasi MigrateDatabaseToLatestVersion . Penginisialisasi ini secara otomatis memperbarui database ke versi terbaru saat aplikasi mengakses database untuk pertama kalinya setelah penyebaran.

Dalam kotak string koneksi untuk DefaultConnection, masukkan nilai berikut:

Data Source=|DataDirectory|aspnet-Prod.sdf

Biarkan Perbarui database dibersihkan. Database keanggotaan akan disebarkan dengan menyalin file .sdf di App_Data, dan Anda tidak ingin proses penyebaran melakukan hal lain dengan database ini.

Publish_Web_wizard_Settings_tab_Test

Klik Berikutnya untuk melanjutkan ke tab Pratinjau .

Di tab Pratinjau , klik Mulai Pratinjau untuk melihat daftar file yang akan disalin.

Publish_Web_wizard_Preview_tab_Test

Publish_Web_wizard_Preview_tab_Test_with_file_list

Klik Terbitkan.

Jika Visual Studio tidak dalam mode administrator, Anda mungkin mendapatkan pesan kesalahan yang menunjukkan kesalahan izin. Dalam hal ini, tutup Visual Studio, buka dalam mode administrator, dan coba terbitkan lagi.

Jika Visual Studio dalam mode administrator, jendela Output melaporkan build dan penerbitan yang berhasil.

Output_window_publish_Test

Browser secara otomatis terbuka ke halaman Beranda Contoso University yang berjalan di IIS di komputer lokal.

Cuplikan layar jendela Internet Explorer, yang memperlihatkan indikator lingkungan Contoso University adalah Uji alih-alih Dev.

Pengujian di Lingkungan Pengujian

Perhatikan bahwa indikator lingkungan menunjukkan "(Test)" alih-alih "(Dev)", yang menunjukkan bahwa transformasi Web.config untuk indikator lingkungan berhasil.

Cuplikan layar jendela Internet Explorer, yang menunjukkan indikator lingkungan Contoso University adalah Uji alih-alih Dev.

Jalankan halaman Siswa untuk memverifikasi bahwa database yang disebarkan tidak memiliki siswa. Ketika Anda memilih halaman ini, mungkin perlu beberapa menit untuk memuat karena Kode Pertama membuat database lalu menjalankan Seed metode . (Ini tidak melakukannya ketika Anda berada di halaman beranda karena aplikasi belum mencoba mengakses database.)

Students_page_Test

Jalankan halaman Instruktur untuk memverifikasi bahwa Kode Pertama seeded database dengan data instruktur:

Instructors_page_Test

Pilih Tambahkan Siswa dari menu Siswa , tambahkan siswa, lalu tampilkan siswa baru di halaman Siswa untuk memverifikasi bahwa Anda berhasil menulis ke database:

Add_Students_page_Test

Students_page_with_new_student_Test

Dari menu Kursus , pilih Perbarui Kredit. Halaman Perbarui Kredit memerlukan izin administrator, sehingga halaman Masuk ditampilkan. Masukkan kredensial akun administrator yang Anda buat sebelumnya ("admin" dan "Pas$w0rd"). Halaman Perbarui Kredit ditampilkan, yang memverifikasi bahwa akun administrator yang Anda buat di tutorial sebelumnya disebarkan dengan benar ke lingkungan pengujian.

Log_In_page_Test

Update_Credits_page_Test

Verifikasi bahwa folder Elmah hanya ada dengan file tempat penampung di dalamnya.

Elmah_folder_Test

Meninjau Perubahan Web.config Otomatis untuk Migrasi Pertama Kode

Buka file Web.config di aplikasi yang disebarkan di C:\inetpub\wwwroot\ContosoUniversity dan Anda dapat melihat di mana proses penyebaran mengonfigurasi Migrasi Pertama Kode untuk memperbarui database secara otomatis ke versi terbaru.

Cuplikan layar yang menyoroti tempat proses penyebaran mengonfigurasi Migrasi Pertama Kode untuk memperbarui database secara otomatis ke versi terbaru.

Proses penyebaran juga membuat string koneksi baru untuk Migrasi Pertama Kode untuk digunakan secara eksklusif untuk memperbarui skema database:

DatabasePublish_connection_string

string koneksi tambahan ini memungkinkan Anda menentukan satu akun pengguna untuk pembaruan skema database, dan akun pengguna yang berbeda untuk akses data aplikasi. Misalnya, Anda dapat menetapkan peran db_owner ke Migrasi Pertama Kode, dan peran db_datareader dan db_datawriter ke aplikasi. Ini adalah pola pertahanan mendalam umum yang mencegah kode yang berpotensi berbahaya dalam aplikasi mengubah skema database. (Misalnya, ini mungkin terjadi dalam serangan injeksi SQL yang berhasil.) Pola ini tidak digunakan oleh tutorial ini. Ini tidak berlaku untuk SQL Server Compact, dan tidak berlaku ketika Anda bermigrasi ke SQL Server dalam tutorial selanjutnya dalam seri ini. Situs Cytanium hanya menawarkan satu akun pengguna untuk mengakses database SQL Server yang Anda buat di Cytanium. Jika Anda dapat menerapkan pola ini dalam skenario Anda, Anda dapat melakukannya dengan melakukan langkah-langkah berikut:

  1. Di tab Pengaturan wizard Terbitkan Web, masukkan string koneksi yang menentukan pengguna dengan izin pembaruan skema database lengkap, dan kosongkan kotak centang Gunakan string koneksi ini saat runtime. Dalam file Web.config yang disebarkan, ini menjadi DatabasePublish string koneksi.
  2. Buat transformasi file Web.config untuk string koneksi yang Anda inginkan untuk digunakan aplikasi pada durasi.

Anda sekarang telah menyebarkan aplikasi Anda ke IIS di komputer pengembangan Anda dan mengujinya di sana. Ini memverifikasi bahwa proses penyebaran menyalin konten aplikasi ke lokasi yang tepat (tidak termasuk file yang tidak ingin Anda sebarkan), dan juga bahwa Web Deploy mengonfigurasi IIS dengan benar selama penyebaran. Dalam tutorial berikutnya, Anda akan menjalankan satu pengujian lagi yang menemukan tugas penyebaran yang belum dilakukan: mengatur izin folder pada folder Elmah .

Informasi Lebih Lanjut

Untuk informasi tentang menjalankan IIS atau IIS Express di Visual Studio, lihat sumber daya berikut ini: