Bisakah Anda memberi tahu saya apa yang sebenarnya terjadi ketika kami mengedit Web.config (saat runtime) pada server IIS?

11

Bisakah Anda memberi tahu saya apa yang sebenarnya terjadi ketika kami mengedit Web.config (saat runtime) pada server IIS.

Apakah aplikasi yang bergantung pada web.config secara otomatis dihidupkan ulang? Jika ya, apakah mungkin untuk membatalkan restart otomatis (atau memuat ulang web.config)?

Bastien Vandamme
sumber
Anda dapat mencoba mengaktifkan audit akses file untuk melihat apakah IIS membaca web.config atau tidak setelah Anda memodifikasinya.
Eric H

Jawaban:

10

ASP.NET AppDomain dimulai ulang setiap kali Anda 'menyentuh' web.config. Dimungkinkan untuk mematikan Notifikasi Perubahan File (FCN) untuk folder, tetapi biasanya itu bukan yang terbaik jika Anda dapat membantunya. Jika Anda mematikannya, itu artinya Anda harus mendaur ulang kumpulan aplikasi secara manual agar perubahan diterapkan.

Sebelum IIS7, hanya perubahan ASP.NET yang akan menyebabkan daur ulang AppDomain, tetapi dengan IIS7 dan banyak pengaturan yang hidup di web.config, ini adalah masalah yang lebih umum. yaitu mengubah dokumen default di IIS 7 Manager akan menyebabkan AppDomain tersebut didaur ulang sekarang.

Idealnya Anda hanya perlu menjaga laju perubahan Anda turun, atau kadang-kadang menerapkan perubahan ke applicationHost.config (yang tidak menyebabkan daur ulang AppDomain) daripada web.config.

Scott Forsyth - MVP
sumber
4

Aplikasi yang menggunakan web.config akan memulai ulang ketika Anda mengubahnya, ada info lebih lanjut di sini:

http://msdn.microsoft.com/en-us/library/ms178473.aspx

Saya tidak tahu cara apa pun untuk mencegah hal ini terjadi (dan saya tidak yakin mengapa Anda ingin - mungkin Anda bisa memberikan beberapa detail lebih banyak tentang apa yang ingin Anda capai).

Mengocok
sumber
3

[JUST A NOTE]

Saya tahu ini sudah tua tapi masih perlu dicatat.

Scott Forsyth - Jawaban MVP salah.

ASP.NET AppDomain dimulai ulang setiap kali Anda 'menyentuh' web.config.

Ini salah.


Jawaban Whisk adalah jawaban yang paling benar secara teknis & lengkap karena menyertakan tautan ke MSDN yang mencakup satu detail penting:

Ketika aplikasi restart diperlukan, ASP.NET akan melayani semua permintaan yang tertunda dari domain aplikasi yang ada dan majelis lama sebelum memulai kembali domain aplikasi dan memuat majelis baru.

Ini sangat penting ketika kita berbicara tentang layanan web. Ini menunjukkan bahwa mungkin baik-baik saja melakukan restart tengah hari dengan aman.

pengguna1416420
sumber