Menyebarkan Aplikasi Web ASP.NET dengan SQL Server Compact menggunakan Visual Studio atau Pengembang Web Visual: Mengatur Izin Folder - 6 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
Dalam tutorial ini, Anda mengatur izin folder untuk folder Elmah di situs web yang disebarkan sehingga aplikasi dapat membuat file log di folder tersebut.
Saat Anda menguji aplikasi web di Visual Studio menggunakan Visual Studio Development Server (Cassini), aplikasi berjalan di bawah identitas Anda. Anda kemungkinan besar adalah administrator di komputer pengembangan Anda dan memiliki otoritas penuh untuk melakukan apa pun pada file apa pun di folder apa pun. Tetapi ketika aplikasi berjalan di bawah IIS, aplikasi berjalan di bawah identitas yang ditentukan untuk kumpulan aplikasi tempat situs ditetapkan. Ini biasanya merupakan akun yang ditentukan sistem yang memiliki izin terbatas. Secara default telah membaca dan menjalankan izin pada file dan folder aplikasi web Anda, tetapi tidak memiliki akses tulis.
Ini menjadi masalah jika aplikasi Anda membuat atau memperbarui file, yang merupakan kebutuhan umum dalam aplikasi web. Dalam aplikasi Contoso University, Elmah membuat file XML di folder Elmah untuk menyimpan detail tentang kesalahan. Bahkan jika Anda tidak menggunakan sesuatu seperti Elmah, situs Anda mungkin mengizinkan pengguna mengunggah file atau melakukan tugas lain yang menulis data ke folder di situs Anda.
Pengingat: Jika Anda mendapatkan pesan kesalahan atau sesuatu tidak berfungsi saat Anda melalui tutorial, pastikan untuk memeriksa halaman pemecahan masalah.
Menguji Pengelogan dan Pelaporan Kesalahan
Untuk melihat bagaimana aplikasi tidak berfungsi dengan benar di IIS (meskipun itu terjadi ketika Anda mengujinya di Visual Studio), Anda dapat menyebabkan kesalahan yang biasanya akan dicatat oleh Elmah, lalu membuka log kesalahan Elmah untuk melihat detailnya. Jika Elmah tidak dapat membuat file XML dan menyimpan detail kesalahan, Anda akan melihat laporan kesalahan kosong.
Buka browser dan buka http://localhost/ContosoUniversity
, lalu minta URL yang tidak valid seperti Studentsxxx.aspx. Anda melihat halaman kesalahan yang dihasilkan sistem alih-alih halaman GenericErrorPage.aspx karena customErrors
pengaturan dalam file Web.config adalah "RemoteOnly" dan Anda menjalankan IIS secara lokal:
Sekarang jalankan Elmah.axd untuk melihat laporan kesalahan. Anda melihat halaman log kesalahan kosong karena Elmah tidak dapat membuat file XML di folder Elmah :
Mengatur Izin Tulis pada Folder Elmah
Anda dapat mengatur izin folder secara manual atau Anda dapat menjadikannya bagian otomatis dari proses penyebaran. Membuatnya otomatis memerlukan kode MSBuild yang kompleks, dan karena Anda hanya perlu melakukan ini saat pertama kali Anda menyebarkan, tutorial ini hanya menunjukkan cara melakukannya secara manual. (Untuk informasi tentang cara menjadikan bagian dari proses penyebaran ini, lihat Mengatur Izin Folder di Publikasi Web di blog Sayed Hashimi.)
Di Windows Explorer, navigasikan ke C:\inetpub\wwwroot\ContosoUniversity. Klik kanan folder Elmah , pilih Properti, lalu pilih tab Keamanan .
(Jika Anda tidak melihat DefaultAppPool dalam daftar Grup atau nama pengguna , Anda mungkin menggunakan beberapa metode lain daripada yang ditentukan dalam tutorial ini untuk menyiapkan IIS dan ASP.NET 4 di komputer Anda. Dalam hal ini, cari tahu identitas apa yang digunakan oleh kumpulan aplikasi yang ditetapkan ke aplikasi Contoso University, dan berikan izin tulis ke identitas tersebut. Lihat tautan tentang identitas kumpulan aplikasi di akhir tutorial ini.)
Klik Edit. Dalam kotak dialog Izin untuk Elmah , pilih DefaultAppPool, lalu pilih kotak centang Tulis di kolom Izinkan .
Klik OK di kedua kotak dialog.
Pengelogan dan Pelaporan Kesalahan Pengujian Ulang
Uji dengan menyebabkan kesalahan lagi dengan cara yang sama (minta URL buruk) dan jalankan halaman Log Kesalahan . Kali ini kesalahan muncul di halaman.
Anda juga memerlukan izin tulis pada folder App_Data karena Anda memiliki file database SQL Server Compact di folder tersebut, dan Anda ingin dapat memperbarui data dalam database tersebut. Namun, dalam hal ini, Anda tidak perlu melakukan sesuatu yang ekstra karena proses penyebaran secara otomatis mengatur izin tulis pada folder App_Data .
Anda sekarang telah menyelesaikan semua tugas yang diperlukan untuk membuat Contoso University bekerja dengan benar di IIS di komputer lokal Anda. Dalam tutorial berikutnya, Anda akan membuat situs tersedia untuk umum dengan menyebarkannya ke penyedia hosting.
Informasi Lebih Lanjut
Dalam contoh ini, alasan mengapa Elmah tidak dapat menyimpan file log cukup jelas. Anda dapat menggunakan pelacakan IIS dalam kasus di mana penyebab masalahnya tidak begitu jelas; lihat Pemecahan Masalah Permintaan Gagal Menggunakan Pelacakan di IIS 7 di situs IIS.net.
Untuk informasi selengkapnya tentang cara memberikan izin ke identitas kumpulan aplikasi, lihat Identitas Kumpulan Aplikasi dan Konten Aman di IIS Melalui ACL Sistem File di situs IIS.net.