Untuk digunakan dalam javascript atau untuk menghemat hd?
Remy
Saya ingin mengaksesnya melalui jQuery.ajax (url: ...
Lea Hayes
2
Menambahkan bahwa setelah IIS lokal memiliki daftar, pada penyebaran Anda berikutnya itu dapat menimbulkan kesalahan 500 server dari daftar duplikat sehingga kemudian berkomentar.
Jangan lupa untuk me-restart IIS setelah perubahan.
PEMBARUAN: Ada cara mudah untuk melakukan ini di IIS7 dan yang lebih baru. Operasi khusus meminta bantuan IIS6 jadi saya meninggalkan jawaban ini apa adanya. Tetapi jawaban ini masih mendapatkan banyak lalu lintas meskipun IIS6 sudah sangat tua sekarang. Semoga Anda menggunakan sesuatu yang lebih baru, jadi saya ingin menyebutkan bahwa jika Anda memiliki IIS7 yang lebih baru atau versi yang lebih baru lihat jawaban @ ProVega di bawah ini untuk solusi yang lebih sederhana untuk versi yang lebih baru.
Sorakan tetapi ini adalah pada paket hosting bersama tanpa akses ke apa pun selain web.config atau file kode global
Lea Hayes
Jika Anda tidak memiliki akses ke pengaturan IIS 6.0, dan dukungan penyedia Anda tidak akan menambahkan jenis MIME untuk Anda, maka Anda harus beralih penyedia, atau ke server yang lebih baru dengan IIS 7.0 pada penyedia itu jika mereka menawarkannya, untuk dukung ini.
Jon Adams
1
Ya, ASP.Net dapat meneruskan file melalui ASPX handler atau bahkan halaman sederhana, tetapi Anda tidak akan dapat menggunakan tipe file .json di URL karena itu tidak akan mengirimkan permintaan itu ke ASP.Net runtime. Itu harus menjadi sesuatu yang melewati runtime ASPX. Jika Anda tidak memiliki akses ke pengaturan IIS, itu harus menjadi salah satu dari ekstensi yang ada .ASPX. Sekali lagi, beralih ke server dengan IIS7 menawarkan banyak solusi yang lebih mudah.
Jon Adams
1
Memulai ulang kumpulan aplikasi harus memadai (dalam kasus saya), daripada memulai ulang IIS sama sekali.
kltft
1
@kltft Benar, restart apppool akan memicu pembaruan, tetapi hanya untuk kumpulan itu saja. Langkah-langkah ini termasuk mengubah pengaturan untuk semua orang, dan membuatnya dalam tingkat pengaturan yang tidak konsisten akan dengan mudah menyebabkan kebingungan nantinya. Saya sarankan memulai kembali seluruh proses iis untuk keselamatan dan kewarasan. Tetapi dalam keadaan darurat, jika semua orang setuju dengan pro / kontra, restart apppool bisa bekerja.
Jon Adams
211
Jika Anda ingin secara manual menambahkan dukungan ke situs Anda, Anda bisa menambahkan yang berikut ke web.config di bagian system.webServer :
Memperbarui jawaban Anda untuk menyertakan web.configpath lengkap .
GFoley83
Life saver, Terima kasih :)
Gaurav123
1
Untuk beberapa alasan, ini mengacaukan seluruh situs saya - css tidak lagi berfungsi!
TheJeff
@TheJeff - itu terjadi pada saya, tapi itu karena saya menambahkan dua staticContent mimeMap, satu untuk JSON (perlu) dan satu untuk CSV (berlebihan, saya menganggap itu perlu, tetapi applicationConfig IISExpress sudah punya CSV). Oleh karena itu saya mendapatkan kesalahan ini kapan saja saya mencoba mengakses file static: Cannot add duplicate collection entry of type 'mimeMap' with unique key attribute 'fileExtension' set to '.csv' Setelah saya menghapus duplikatnya, tidak ada masalah.
Kacang Merah
1
Ini akan memperbaiki masalah saat dijalankan secara lokal, tetapi perhatikan saat mendorong langsung. Jika mimeMap sudah dikonfigurasi secara global di IIS, Anda akan mendapatkan 500 kesalahan. Cukup hapus bagian ini dari web.config Anda dalam hal ini.
Evan
20
Solusinya adalah Anda perlu menambahkan jenis ekstensi file json di Jenis MIME
Metode 1
Buka IIS, Pilih aplikasi Anda dan Temukan Jenis MIME
Klik Tambah dari panel Kanan
Ekstensi Nama File = .json
Jenis MIME = application / json
Setelah menambahkan jenis file .json di Jenis MIME , Restart IIS dan coba akses file json
Metode 2
Buka web.config aplikasi itu dan tambahkan baris ini di dalamnya
Saat menambahkan dukungan untuk mimetype (seperti yang disarankan oleh @ProVega) maka itu juga merupakan praktik terbaik untuk menghapus jenis sebelum menambahkannya - ini adalah untuk mencegah kesalahan tak terduga ketika menggunakan ke server di mana dukungan untuk jenis tersebut sudah ada, misalnya:
Ketika Anda hanya menambahkan mimeMap, kadang-kadang menghapus gaya css Anda, jadi, cara yang benar adalah menghapusnya terlebih dahulu, terima kasih banyak
sgrysoft
Path ke file config di file IIS7 C:\Windows\System32\inetsrv\config: applicationHost.config
OO
5
Baru saja mengalami masalah ini tetapi harus menemukan konfigurasi untuk IIS Express sehingga saya dapat menambahkan tipe mime. Bagi saya, itu terletak di C:\Users\<username>\Documents\IISExpress\config\applicationhost.configdan saya dapat menambahkan "peta mime" yang benar di sana.
Ini mungkin mengapa itu tidak bekerja untuk saya melalui IIS Express. Sayangnya ini bukan sesuatu yang saya ingin konfigurasi pada setiap mesin dev jadi sepertinya saya akan merekomendasikan tetap dengan ekstensi .js untuk file konfigurasi json.
Jika web.config tidak cukup, Anda mungkin perlu menambahkan baris ini sebelum <mimeMap>simpul: <remove fileExtension=".json" />. Anda tidak harus menyentuh applicationhost.config (atau machine.config). Yang sedang berkata, memodifikasi file-file itu mungkin berguna jika Anda sering membuat situs baru dan tidak ingin harus memodifikasi web.config untuk setiap situs. Itu mungkin bekerja untuk lingkungan dev, tetapi seringkali Anda tidak dapat menyentuh machine.config di lingkungan produksi, jadi saya masih akan merekomendasikan untuk membuat perubahan di web.config.
gilly3
1
Terima kasih @ gilly3 - removeitu adalah kunci bagi saya
Jawaban:
Tambahkan tipe JSON MIME ke IIS 6. Ikuti petunjuk di Configure MIME Types MSDN (IIS 6.0) .
Jangan lupa untuk me-restart IIS setelah perubahan.
PEMBARUAN: Ada cara mudah untuk melakukan ini di IIS7 dan yang lebih baru. Operasi khusus meminta bantuan IIS6 jadi saya meninggalkan jawaban ini apa adanya. Tetapi jawaban ini masih mendapatkan banyak lalu lintas meskipun IIS6 sudah sangat tua sekarang. Semoga Anda menggunakan sesuatu yang lebih baru, jadi saya ingin menyebutkan bahwa jika Anda memiliki IIS7 yang lebih baru atau versi yang lebih baru lihat jawaban @ ProVega di bawah ini untuk solusi yang lebih sederhana untuk versi yang lebih baru.
sumber
.ASPX
. Sekali lagi, beralih ke server dengan IIS7 menawarkan banyak solusi yang lebih mudah.Jika Anda ingin secara manual menambahkan dukungan ke situs Anda, Anda bisa menambahkan yang berikut ke web.config di bagian system.webServer :
Ini akan menambahkan konfigurasi "lokal" di bawah IIS. Ini tidak berfungsi di IIS6, tetapi bekerja di IIS7 dan yang lebih baru.
sumber
web.config
path lengkap .Cannot add duplicate collection entry of type 'mimeMap' with unique key attribute 'fileExtension' set to '.csv'
Setelah saya menghapus duplikatnya, tidak ada masalah.Solusinya adalah Anda perlu menambahkan jenis ekstensi file json di Jenis MIME
Metode 1
Buka IIS, Pilih aplikasi Anda dan Temukan Jenis MIME
Klik Tambah dari panel Kanan
Ekstensi Nama File = .json
Jenis MIME = application / json
Setelah menambahkan jenis file .json di Jenis MIME , Restart IIS dan coba akses file json
Metode 2
Buka web.config aplikasi itu dan tambahkan baris ini di dalamnya
sumber
Saat menambahkan dukungan untuk mimetype (seperti yang disarankan oleh @ProVega) maka itu juga merupakan praktik terbaik untuk menghapus jenis sebelum menambahkannya - ini adalah untuk mencegah kesalahan tak terduga ketika menggunakan ke server di mana dukungan untuk jenis tersebut sudah ada, misalnya:
sumber
C:\Windows\System32\inetsrv\config
: applicationHost.configBaru saja mengalami masalah ini tetapi harus menemukan konfigurasi untuk IIS Express sehingga saya dapat menambahkan tipe mime. Bagi saya, itu terletak di
C:\Users\<username>\Documents\IISExpress\config\applicationhost.config
dan saya dapat menambahkan "peta mime" yang benar di sana.sumber
<mimeMap>
simpul:<remove fileExtension=".json" />
. Anda tidak harus menyentuh applicationhost.config (atau machine.config). Yang sedang berkata, memodifikasi file-file itu mungkin berguna jika Anda sering membuat situs baru dan tidak ingin harus memodifikasi web.config untuk setiap situs. Itu mungkin bekerja untuk lingkungan dev, tetapi seringkali Anda tidak dapat menyentuh machine.config di lingkungan produksi, jadi saya masih akan merekomendasikan untuk membuat perubahan di web.config.remove
itu adalah kunci bagi sayasumber