Untuk apa folder aspnet_client di bawah struktur IIS?

108

Saya perhatikan bahwa sering ada folder aspnet_client di bawah struktur folder web IIS standar. Untuk apa ini digunakan? Apakah itu dibutuhkan?

Orang
sumber

Jawaban:

91

Dalam .NET 1.1 hari dan sebelumnya, folder ini menyediakan ASP.NET dengan dukungan JavaScript untuk kontrol validasi dan fungsionalitas lainnya. Jika Anda tidak memiliki situs .NET 1.1 atau versi lama yang menjalankannya, sebaiknya aman untuk menghapusnya. Saya akan mengganti namanya terlebih dahulu untuk memastikan itu tidak menimbulkan masalah.

Duncan
sumber
15
Ini muncul untuk mengingatkan Anda bagaimana untuk tidak melakukan hal-hal seperti itu lagi ... :)
Ostati
Bahkan jika Anda sekarang keluar dari .Net 1.1 hari Anda dapat menggunakan Crystal Reports, sayangnya masih menggunakan folder yang disebutkan (dan mungkin ada juga perangkat lunak lain dengan perilaku yang sama). Jadi, setidaknya, buat cadangan sebelum menghapus folder
Vadim Levkovsky
66

Selain apa yang orang lain katakan, ini biasanya dibuat oleh alat aspnet_regiis, yang dapat dijalankan (kembali) oleh hal-hal seperti Pembaruan Windows / AddRemove komponen Windows / IIS. Jadi terkadang meskipun Anda menghapusnya, itu bisa kembali secara acak. Mungkin ada cara untuk menghentikan perilaku ini, tetapi saya belum menemukannya (mungkin mengubah versi aplikasi ke .NET 2 sebenarnya akan melakukannya).

Jadi, kecuali jika Anda menggunakan fitur tertentu dari .NET 1.0 / 1.1 (validasi, Smart Navigation, dll.), Anda dapat menghapusnya tanpa masalah, namun jangan terlalu terkejut jika kembali!

spmason
sumber
28
Saya menemukannya kembali secara berkala. Hal yang paling membuat frustrasi adalah bahwa setiap kali ia kembali, ia merusak WebDeploy karena akun yang menjalankannya tidak memiliki akses untuk menghapus folder aspnet_client yang dibuat!
Russ Cam
5
@RussCam Saya sebenarnya memiliki masalah yang sama. Ini merusak WebDeploy karena alasan yang sama. Adakah yang menemukan cara untuk menghentikan pembuatan folder ini secara acak?
tugberk
4
Saya baru saja menginstal DotNet Framework 4.5 dan tidak lama kemudian penyebaran WebDeploy kami (dipicu melalui TeamCity) rusak karena alasan yang SAMA. Folder sialan kembali lagi sebagai hasil dari pemasangan 4.5. Seseorang, tolong hentikan.
Michael12345
2
Saya sekarang menggunakan untuk benar-benar menambahkan folder ini ke paket penerapan kami sehingga TeamCity tidak mencoba untuk menghapusnya. Rasanya seperti mencemari basis kode kami, tetapi mudah-mudahan akan menghentikan perebutan kekuasaan antara ASP.NET dan penerapan aplikasi kami.
Michael12345
1
Saya juga sangat terganggu dengan folder ini yang selalu muncul kembali, kami tidak memiliki situs asp.net 1.x, namun tampaknya setiap pembaruan windows otomatis menempatkan folder berdarah ini di setiap situs sehingga merusak semua penyebaran web saya. Saya setuju dengan @ Michael12345 bahwa ini bukan solusi yang bagus untuk menambahkan folder yang tidak berguna ke SC hanya untuk membuat penerapan terus berfungsi dan tidak perlu memperbaiki secara manual setiap hari Senin setelah pembaruan kemenangan akhir pekan menambahkannya kembali ke setiap situs (dengan izin ACL yang salah) . Menyebalkan!
MemeDeveloper
15

aspnet_client adalah folder untuk "sumber daya yang harus dilayani melalui HTTP, tetapi diinstal pada basis per server, bukan basis per aplikasi".

Beberapa penggunaan aspnet_client termasuk menyimpan sumber daya (mis. JavaScript, gambar) untuk:

  • JavaScript untuk ASP.NET Web Forms mengontrol saat menggunakan validasi sisi klien (terutama untuk menangani browser lama seperti IE5, tampaknya)
  • ASP.NET 2.0 (hingga pada framework 4.0) untuk 'Tema Global' (global untuk semua situs di server, yaitu)
  • beberapa versi Crystal Reports

Mungkin ada / akan ada (ab) penggunaan lebih lanjut dari folder ini di masa mendatang. Tak perlu dikatakan, karena ini berisi hal-hal yang "diperlukan agar aplikasi berjalan dengan benar" tetapi "tidak seharusnya digunakan oleh aplikasi", ini akan tetap menjadi mimpi buruk bagi pengembang dan administrator sistem.

Tampaknya 'prototipe' untuk konten folder ada di C: \ inetpub \ wwwroot \, dan tampaknya masuk akal untuk menganggap bahwa jika situs web IIS tertentu tidak memiliki sumber daya / aspnet_client, maka IIS akan mencoba melakukan hal yang benar dan ... sebagai upaya terakhir ... buat folder fisik di folder root situs web, dan salin file di sana. Tampaknya IIS akan melakukan ini setidaknya ketika "ASPNET_regiis / c" dipanggil ke server tertentu - yang mungkin terjadi secara otomatis di beberapa titik kritis ... seperti ketika pembaruan kerangka .NET diterapkan ke server yang memiliki peran IIS.

Strategi untuk menangani direktori aspnet_client meliputi: * menentukan direktori virtual yang dipetakan ke C: \ inetpub \ wwwroot dengan harapan IIS akan melupakan pembuatan direktori fisik * menghapus direktori fisik dari waktu ke waktu jika Anda yakin situs Anda tidak melakukannya ' t membutuhkannya dan itu benar-benar mengganggu Anda * mengabaikan aspnet_client * menjalankan "ASPNET_regiis / c" sendiri jika Anda kehilangan folder, dan membutuhkannya

Mungkin yang paling penting, sebagai pengembang, Anda harus memahami dengan jelas dan mendokumentasikan dependensi aplikasi Anda pada direktori aspnet_client, dan memastikan bahwa prosedur instalasi Anda memiliki instruksi yang relevan untuk memastikan bahwa direktori tersebut ada. Namun, Anda mungkin tidak perlu repot-repot menyediakan direktori sebagai bagian dari paket aplikasi web atau situs web Anda - bagaimana Anda bisa melakukan ini untuk setiap versi kerangka .NET yang akan dilihat server selama masa pakai aplikasi Anda ?!

Beberapa tautan yang akan saya lihat nanti:

David Bullock
sumber
jadi jika Anda menambahkan folder aspnet_client di bawah wwwroot, isinya akan disalin ke setiap aplikasi web yang Anda instal, saya kira
George Birbilis
8

Ia juga memiliki ikon dan skrip tertentu yang diperlukan agar laporan kristal dapat berjalan dengan baik bahkan dalam versi lebih baru dari 1.1


sumber
Yah, menemukan ini dengan cara yang sulit. Saya memindahkan contoh Ripplestone kami dari direktori virtual di bawah Situs Web Default ke situs webnya sendiri, dan semuanya mulai menjadi aneh di Ripplestone. Saya melihat konsol javascript, dan melihat bahwa itu mencari hal-hal di bawah C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13 Tidak yakin apakah itu hal yang benar untuk dilakukan atau tidak, tetapi saya baru saja menyalin seluruh folder aspnet_client dari root ke direktori tempat tempat contoh Ripplestone saya tinggal.
Adam Nofsinger
3

Folder biasanya untuk menyimpan Javascript sisi klien, yang digunakan ASP.NET untuk hal-hal seperti validasi.

Seharusnya aman untuk dihapus.

JamesSugrue
sumber
1

Kupikir saya akan menambahkan ini di sini karena ini adalah tautan yang terus saya tuju ketika saya mencari pertanyaan ini di Google. Rupanya dengan .NET 4.0 dan yang lebih baru, folder ini tidak lagi diperlukan dan dapat dihapus tanpa masalah.

David
sumber
0

Jika Anda menggunakan Installshield untuk mengkonfigurasi situs ASP.net, ketahuilah bahwa fitur ini ada di Installshield 2010 dan tidak ada di Installshield 2012. Pemasangan kaca depan 2010 Vs 2012

Wisnu Prasanth
sumber
Beberapa fitur tidak ada di IS2010. Coba lebih banyak versi sebelumnya.
Wisnu Prasanth