Kami telah menemukan masalah pada IIS 7.5 di mana kami memiliki sistem penyebaran sederhana yang terdiri dari yang berikut:
Buat file zip webroot baru, yang terdiri dari tiga folder:
Api
Site
Manager
Ini membuka ritsleting ke folder baru (katakanlah kita menyebutnya "SITE_REV1"), dan berisi skrip yang memanggil yang berikut (satu untuk setiap webroot):
C:\Windows\system32\inetsrv\appcmd set vdir "www.site.com/" -physicalPath:"SITE_REV1\Site"
Ini biasanya berhasil, dalam 9/10 kali. Dalam beberapa kasus, webroot tampaknya diperbarui dengan benar (jika saya memeriksa pengaturan dasar di IIS Manager, jalurnya terlihat benar), tetapi situs yang sedang berjalan sebenarnya menunjuk ke lokasi lama. Satu-satunya cara kami berhasil "memperbaikinya", adalah dengan menjalankan IIS-reset. Tidak cukup untuk mendaur ulang kumpulan aplikasi yang dimaksud.
Kadang-kadang tampaknya bahkan perlu untuk membuat reboot, tapi saya tidak 100% yakin itu akurat (tidak selalu saya sendiri yang memperbaiki masalah).
Saya menulis ulang skrip menggunakan Powershell dan modul Web-Administration, berharap ada kesalahan di appcmd, tetapi masalah yang sama terjadi.
Set-ItemProperty "IIS:\Sites\www.site.com" -Name physicalPath -Value "SITE_REV1\Site"
Adakah yang mengalami hal seperti ini? Adakah yang tahu apa yang sedang terjadi, dan apa yang bisa saya coba lakukan untuk mencegah masalah ini? Melakukan reset IIS sebenarnya bukan pilihan yang baik bagi kami, karena itu akan memengaruhi semua situs di server setiap kali kami mencoba dan menyebarkan perubahan di satu situs.
EDIT: Kami telah mengidentifikasi bahwa memulai / menghentikan situs (BUKAN kumpulan aplikasi) di IIS Manager menyelesaikan jalur fisik yang salah, tetapi jika saya menghentikan situs menggunakan appcmd, mengubah jalur fisik, dan kemudian memulainya, saya masih menderita karena masalah yang sama. Saya kosong ...
Jawaban:
Apakah mengubah jalur fisik dari IIS Manager berfungsi dengan benar dan segera?
Anda mungkin ingin mencoba perintah berikut. Sintaks yang berbeda, harus memiliki hasil yang sama tetapi mungkin bekerja sedikit berbeda secara internal yang menyebabkan IIS untuk mengambil perubahan (lebih baik):
C:\Windows\System32\inetsrv\appcmd.exe set app "www.site.com/" -[path='/'].physicalPath:"SITE_REV1\Site"
sumber
Daur ulang kumpulan aplikasi harus mencukupi per basis situs. Ini adalah proses independen. Terlalu sering artikel dan proses mempromosikan menggunakan iisreset. Apakah menghentikan / memulai kumpulan aplikasi untuk satu situs merupakan opsi? Apakah ini solusi server tunggal dan Anda mencoba meminimalkan waktu henti untuk situs ini? Ada opsi untuk Nonaktifkan daur ulang pada perubahan konfigurasi. Kemudian Anda dapat mendaur ulang secara manual. Ketika masalah terjadi, apa yang terdaftar di applicationHost.config?
sumber