IIS 7.5 tidak memuat halaman html statis

10

Ada IIS 7.5 yang baru diinstal pada server khusus. Aplikasi web ASP.NET 4.0 disalin ke foldernya, situs web baru dibuat pada IP-nya sendiri pada posting 80, akun IIS_IUSR dan IUSR telah membaca / mengeksekusi hak pada folder situs, situs ditugaskan ke kumpulan aplikasi terintegrasi sendiri dengan 4.0 .NET (Saya mencoba Classic Pool dengan hasil yang sama).

Masalahnya: ketika saya mencoba mengakses situs web ini, browser hanya memuat konten yang dihasilkan oleh sumber daya .NET seperti halaman aspx, file .axd, dll. Gambar statis, file js, css dan html statis ada di sumber halaman tetapi IIS tidak dapat melayani mereka. Alat dev di semua browser mengeluh bahwa semua sumber daya statis telah dikirim oleh server dengan jenis konten yang salah (teks biasa, bukan gambar, gaya, dll). Apa yang saya lakukan salah?

Kizz
sumber
Apa yang Anda lihat di Fiddler (atau Firebug)?
SLaks
Jika ini memungkinkan, jalankan halaman di server, terutama jalankan sendiri konten statis di server dan Anda mendapatkan laporan kesalahan yang sepenuhnya terperinci.
Aristos
Saya tidak menggunakan Firebug. Tetapi Chrome, misalnya, mengeluh "Sumberdaya ditafsirkan sebagai Gambar tetapi ditransfer dengan MIME ketik teks / polos" tentang file jpg pada halaman. Sama untuk semua gaya, js dan halaman html statis. Selain itu, banyak skrip dan html dinamis tidak berfungsi.
@ Aristos: Saya melakukan itu. Browser server membuat halaman dengan cara yang sama seperti browser eksternal. Tidak ada kesalahan, hanya halaman tidak lengkap.
Apakah pengguna yang menjalankan server web berhak membaca file-file itu?
Luc M

Jawaban:

12

IIS 7 / 7.5 memiliki "fitur" baru - Layanan Peran. Posting dari rsbarro mengingatkan saya bahwa ada satu layanan peran yang bertanggung jawab atas konten statis. Ini adalah Server Web / Fitur HTTP Umum / Konten Statis. Periksa apakah ikon MIME Type ada di IIS Manager, seperti yang disarankan rsbarro.

Anda perlu menginstal layanan peran Konten Statis jika tidak. Untuk melakukannya, pilih:

  • Manajer Server
  • Peran
  • Node Server Web (IIS) dari panel kiri
  • gulir ke jendela Layanan Peran
  • lihat apakah layanan peran Konten Statis diinstal.

Dari apa yang Anda gambarkan, ini tampaknya menjadi masalah Anda.

Secara umum, jika IIS7 tidak melakukan sesuatu yang IIS6 lakukan, hal pertama yang perlu diperiksa adalah untuk melihat apakah layanan peran koresponden diinstal. Semoga ini membantu.

Vlad
sumber
Peran Konten Statis, bagaimana saya bisa melewatkannya? Terima kasih, perbaiki masalah dengan sempurna.
David Thomas Garcia
6

Di bawah IIS, buka situs web Anda dan periksa bagian Jenis MIME (lihat gambar di bawah). Pastikan Anda melihat entri dalam daftar itu untuk .js, .css, .html, dll, dan bahwa mereka memiliki tipe MIME yang tepat yang ditentukan. IIS 7.5 hanya akan menayangkan halaman jika ada tipe MIME yang ditentukan. Secara default, tipe MIME untuk ekstensi ini disiapkan di applicationHost.configfile yang terletak di C:\Windows\system32\inetsrv\configfolder (Anda mungkin harus menjalankan notepad sebagai Administrator untuk melihat file). Cukup cari .js dan Anda akan menemukan entri <mimeMap>di bawah di <staticContent>elemen.

iis tipe pantomim

Pengaturan ini dapat diganti dalam web.configfile Anda . Jika ya, mereka akan muncul di lokasi berikut di web.config:

<system.webServer>
    <staticContent>
        <remove fileExtension=".js" />
    </staticContent>
</system.webServer>

Saya pasti akan mulai dengan memeriksa di sana. Jika semuanya terlihat ok di bawah bagian MIME types, maka ada kemungkinan Anda memiliki modul yang mengganggu permintaan untuk file statis (tetapi kemungkinan besar hanya jika Anda telah <modules runAllManagedModulesForAllRequests="true" />menetapkan di <system.webServer>bagian Anda ). Jika itu masalahnya, saya akan menghapus semua pengaturan modul di Anda web.configdan melihat apakah Anda dapat membuka file statis, dan kemudian membacanya satu per satu untuk melihat modul mana yang menyebabkan masalah. Jika Anda tidak bisa mengetahuinya maka saya sarankan memposting konten Anda web.config(atau setidaknya bagian system.webdan system.webServer) dalam pertanyaan.

rsbarro
sumber
2

Saya memiliki masalah yang sama, tetapi kumpulan aplikasi saya berjalan di bawah akun domain dan pengguna itu memiliki hak untuk folder situs web. Situs web saya membuat aspx tetapi tidak ada konten statis. Apa yang menyelesaikan masalah saya adalah menambahkan grup IIS_IUSRS ke kebijakan keamanan lokal yang disebut "menyamar sebagai klien setelah otentikasi '". Grup IIS_IUSRS memiliki akun domain saya di dalamnya. Saya menjalankan server iis 7.5 windows 2008.

parttimeadjunct
sumber
Seandainya saya bisa memilih lebih dari satu kali. Saya sampai pada pertanyaan ini ketika mencari mengapa file .css saya tidak dilayani oleh IIS. Itu terkait dengan izin Windows pada folder tempat mereka disimpan.
2b77bee6-5445-4c77-b1eb-4df3e5