Apakah ada cara untuk membuat direktori virtual di IIS express? Saya tahu bahwa Cassini tidak dapat melakukan ini dan alangkah baiknya dapat melakukan ini tanpa menggunakan versi lengkap IIS.
Saya sudah mendapatkannya sejauh ini sehingga saya dapat menelusuri aplikasi saya secara lokal di IIS express seperti ini:
Yang ingin saya lakukan adalah membuat direktori virtual bernama "OffSiteStuff" dan mengarahkannya ke beberapa lokasi di drive C saya, seperti "c: \ offsitestuff", lalu telusuri item di folder itu seperti ini:
http: // localhost: 1132 / OffSiteStuff / UserUploadedImage.jpg
Saya tahu saya bisa melakukan ini dengan folder di dalam situs saya dan masih menggunakan IIS Express, atau, dalam hal ini Cassini biasa, tetapi folder ini akan menyimpan gambar yang diunggah oleh pengguna dan saya benar-benar tidak ingin gambar-gambar ini tercampur file aplikasi.
Solusi lain, "go big" adalah dengan menyebarkan situs ke instance Server 2008 IIS 7.5 yang lengkap setiap kali saya ingin men-debug fitur yang menggunakan konten di luar situs, tetapi itu juga agak rumit.
Apakah ada cara agar saya dapat melakukan ini di <System.WebServer />
elemen konfigurasi Web?
sumber
applicationHost.config
file di bawah akar proyek:${PROJECT}\.vs\config\applicationHost.config
.Jawaban:
Konfigurasi IIS express dikelola oleh applicationhost.config.
Anda dapat menemukannya di
Di dalamnya Anda dapat menemukan bagian situs yang menyimpan bagian untuk setiap situs yang dikonfigurasi IIS Express.
Tambahkan (atau ubah) bagian situs seperti ini:
Praktisnya Anda perlu menambahkan tag aplikasi baru di situs Anda untuk setiap direktori virtual. Anda mendapatkan banyak fleksibilitas karena Anda dapat mengatur konfigurasi yang berbeda untuk direktori virtual (misalnya versi .Net Framework yang berbeda)
EDIT Terima kasih kepada Fevzi Apaydın untuk menunjukkan solusi yang lebih elegan.
Anda dapat mencapai hasil yang sama dengan menambahkan satu atau lebih tag virtualDirectory ke tag Aplikasi:
Referensi:
sumber
applicationhost.config
telah berubah. Lebih masuk akal dari versi sebelumnya, sekarang terletak di.vs\config
sub folder folder solusi Anda.Pendekatan @ Be.St benar, tapi tidak lengkap. Saya hanya menyalin penjelasannya dengan mengoreksi bagian yang salah.
Konfigurasi IIS express dikelola oleh applicationhost.config.
Anda dapat menemukannya di
Di dalamnya Anda dapat menemukan bagian situs yang menyimpan bagian untuk setiap situs yang dikonfigurasi IIS Express.
Tambahkan (atau ubah) bagian situs seperti ini:
Alih-alih menambahkan blok aplikasi baru, Anda cukup menambahkan elemen virtualDirectory baru ke elemen induk aplikasi.
Edit - Visual Studio 2015
Jika Anda mencari file applicationHost.config dan menggunakan VS2015, Anda akan menemukannya di:
sumber
Di VS2013 saya melakukan ini dengan langkah-langkah berikut:
1. Klik kanan proyek aplikasi web dan tekan Properties
2. Lihat tab "Web" pada halaman Properti
3. Di bawah Server, dengan "IIS Express" menjadi pilihan default dropdown, di "Project Url" ubah url menggunakan nomor port ke nomor yang sesuai untuk Anda. Misalnya saya menghapus nomor port dan menambahkan "/ MVCDemo4" setelah localhost.
4. Klik tombol "Buat Direktori Virtual".
5. Jalankan proyek Anda dan url baru akan digunakan
sumber
Jika Anda menggunakan Visual Studio 2013 (mungkin memerlukan edisi Pro atau lebih tinggi), saya dapat menambahkan direktori virtual ke situs web IIS Express (berbasis file) dengan mengklik kanan situs web di Solution Explorer dan mengklik Tambah> Direktori Virtual Baru. Ini menambahkan entri ke file applicationhost.config seperti dengan metode manual yang dijelaskan di sini.
sumber
Opsi baru adalah Jexus Manager untuk IIS Express,
https://blog.lextudio.com/2014/10/jexus-manager-for-iis-express/
Ini hanyalah alat manajemen yang Anda tahu cara menggunakannya.
sumber
Aku punya sesuatu yang lain, file itu sendiri yang tidak dapat diakses di lingkungan SBS.
Hapus file di folder config (jika Anda tidak dapat membukanya!) Dan ganti dengan salinan folder di pc lokal Anda sendiri.
Memperbaiki itu untuk saya :)
sumber
Saya harus membuat entri di file [project] .vs \ config \ applicationhost.config.
Sebelumnya, ini bekerja dari penerapan tetapi tidak dari kode.
sumber
Sebagai jawaban untuk pertanyaan selanjutnya -
Saya tidak pernah menemukan jawaban yang konsisten untuk ini di mana pun, tetapi kemudian menemukan bahwa Anda dapat melakukannya dengan acara pasca pembuatan menggunakan tugas XmlPoke di file proyek untuk situs web -
Anda dapat menggunakan teknik ini untuk menunjuk kembali apa pun di file sebelum IISExpress dijalankan. Ini akan memungkinkan Anda untuk awalnya memaksa file applicationHost.config ke GIT (dengan asumsi itu diabaikan oleh gitignore) lalu kemudian menunjuk kembali semua jalur pada waktu pembuatan. GIT akan mengabaikan setiap perubahan pada file sehingga sekarang mudah untuk membagikannya.
Sebagai jawaban untuk pertanyaan lebih lanjut tentang menambahkan aplikasi lain di bawah satu situs:
Anda dapat membuat situs di file host aplikasi Anda seperti yang ada di server Anda. Sebagai contoh:
Kemudian gunakan teknik di atas untuk mengubah lokasi folder pada waktu pembuatan.
sumber