Bagikan melalui


ASP.NET Penyebaran Web menggunakan Visual Studio: Mengatur Izin Folder

oleh Tom Dykstra

Unduh Proyek Starter

Seri tutorial ini menunjukkan kepada Anda cara menyebarkan (menerbitkan) aplikasi web ASP.NET ke Azure App Service Web Apps atau ke penyedia hosting pihak ketiga, dengan menggunakan Visual Studio 2012 atau Visual Studio 2010. Untuk informasi tentang seri ini, lihat tutorial pertama dalam seri ini.

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) atau IIS Express, 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:

Halaman kesalahan HTTP 404

Sekarang jalankan Elmah.axd untuk melihat laporan kesalahan. Setelah Anda masuk dengan kredensial akun administrator ("admin" dan "devpwd"), Anda melihat halaman log kesalahan kosong karena Elmah tidak dapat membuat file XML di folder Elmah :

Log kesalahan kosong

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, langkah-langkah berikut 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.)

  1. Di File Explorer, navigasikan ke C:\inetpub\wwwroot\ContosoUniversity. Klik kanan folder Elmah , pilih Properti, lalu pilih tab Keamanan .

  2. Klik Edit.

  3. Dalam kotak dialog Izin untuk Elmah , pilih DefaultAppPool, lalu pilih kotak centang Tulis di kolom Izinkan .

    Izin untuk folder ELMAH

    (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 OK di kedua kotak dialog.

Coba lagi pengelogan dan pelaporan kesalahan

Uji dengan menyebabkan kesalahan lagi dengan cara yang sama (minta URL buruk) dan jalankan halaman Log Kesalahan . Kali ini kesalahan muncul di halaman.

Halaman Log Kesalahan ELMAH

Ringkasan

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 Azure.

Informasi selengkapnya

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.