Script tidak dilayani oleh pengendali file statis pada IIS7.5

130

Saya baru saja mencoba menggunakan aplikasi web pertama saya ke IIS pada notebook Windows 7 Home Premium saya. Setelah membuat aplikasi, saya harus beralih ke Pool App Klasik, lalu mengatur pool itu untuk framework 4.0. Sekarang saya mendapatkan kesalahan berikut:

Kesalahan HTTP 404.17 - Tidak Ditemukan Konten yang diminta tampaknya berupa skrip dan tidak akan dilayani oleh penangan file statis.

URL yang diminta adalah http: // localhost: 80 / pvmms / default.aspx

Saya khawatir Googling yang luas tidak menghasilkan apa pun yang jelas atau cukup jelas untuk saya kerjakan dan seperti biasa saya beralih ke para pakar.

EDIT: Saya menduga ini karena tidak ada pemetaan 4.0 kerangka kerja penangan untuk file .aspx. Namun, aspnet_regiis bahkan memberi pengguna admin saya jari dan mengatakan saya perlu hak admin untuk menjalankannya.

EDIT # 2: Saya mendaftarkan semua kerangka kerja (2 & 4, 32 dan 64) dan semua sekarang berfungsi. Saya menemukan ini dengan secara manual menambahkan skrip peta .aspxke aspnet_isapi dan voila. Saya tidak mengerti mengapa pemasangan framework tidak melakukan ini, kecuali jika memori saya gagal dan saya hanya mengaktifkan IIS setelah menginstal VS.

ProfK
sumber
Atau lakukan di web.config seperti yang dijelaskan di sini stackoverflow.com/questions/2061678/…
bizl

Jawaban:

120

Mungkin sudah terlambat sekarang, tetapi lebih sering Anda tidak perlu lari

aspnet_regiis.exe -i  

setelah menginstal asp.net. Mungkin saya akan tetap melakukannya sekarang.

Remy
sumber
17
Ada dua Alat Registrasi IIS yang dikirimkan dengan .NET Framework; satu untuk sistem standar dan satu untuk sistem 64-bit. Alat untuk sistem 64-bit terletak di direktori Framework64 direktori Microsoft.NET di dalam folder Windows; misalnya C: \ WINDOWS \ Microsoft.NET \ Framework64 \ v2.0.50727 akan berisi Alat Registrasi IIS.
Matthew Lock
3
Jika Anda mendapatkan kesalahan the command is not recognized as an internal or external command. Jalankan di Prompt Perintah Pengembang.
rockXrock
1
Saya harus melakukan ini untuk kerangka kerja 2.0 di folder Framework64. seperti apa yang @matthew Lock katakan
codingNightmares
Juga perhatikan, jika Anda harus menjalankan 2.0 dan 4.0, jalankan 2.0 terlebih dahulu.
SouthShoreAK
C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 (untuk v2.0 pada x64) - ubah Framework64 ke Framework untuk x86, ubah v2. * Ke v4. * Untuk v4 (telusuri ke folder induk untuk nama persis)
JohnLBevan
63

Selain di atas, jika Anda memerlukan dukungan WCF, Anda mungkin perlu menjalankan ini:

c:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe -i

Ganti v3.0 dengan apa pun versi kerangka Anda saat ini.

Adi
sumber
1
Catatan untuk orang lain, saya pikir di webapps yang menggunakan kumpulan aplikasi 4.0, Anda harus menjalankan aspnet_regiis lagi
Tim Gabrhel
1
Untuk .Net 4 ada di direktori induk. Misalnya: C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ ServiceModelReg.exe -i
bytedev
57

Saya menemukan kesalahan ini dari IIS 8.5 ketika mencoba mengakses layanan WCF yang saya tulis. Ternyata server tidak mengaktifkan fitur Aktivasi HTTP WCF. Memeriksa kotak dan mengklik wizard, iisreset, mulai bekerja.

Panel Fitur Windows

JTR
sumber
1
Ini bekerja untuk saya dengan IIS 8.5 dan Windows 8.1. Saya perlu mengaktifkan ASHX untuk mendapatkan kesalahan yang dijelaskan dalam pertanyaan (HTTP 404.17)
Sergio A.
TERIMA KASIH! Ini berhasil untuk saya. Namun, dalam kasus saya, saya harus mengaktifkannya untuk .NET 2.0 karena saya menggunakan Layanan Web lama
Stefan Vasiljevic
Ini adalah pos lama tetapi solusi Anda menyelamatkan bacon saya. Saya tidak akan menemukan ini dalam sejuta tahun ... di tempat lain. Terima kasih.
Joe Schmucker
48

Jika Anda menggunakan iis 7.5.

Cukup buka IIS Manager, buka properti situs web Anda.

Anda akan melihat bagian 'Pemetaan Handler' di sana, buka saja bagian itu dan Cari 'staticFile'.

Kemungkinan besar ini adalah file terakhir dalam daftar.

Kemudian Klik kanan padanya dan Pilih 'Kembalikan Ke Induk'.

Saya telah membuang banyak waktu ketika saya menghadapi ini pertama kali, bagaimanapun ini akan menyelesaikan masalah Anda.

Kumar
sumber
2
Sebagaimana dijawab oleh Adi: komando ini melakukan semua itu: c: \ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation \ ServiceModelReg.exe -i
JDC
@Kumar terima kasih atas tipnya! IIS> Situs> acme.com> Pemetaan Handler> Kembalikan ke Induk. Dalam kasus saya, saya melakukannya untuk seluruh domain dan bukan hanya "staticFile". Ini bekerja untuk saya dan lebih sederhana / lebih baik daripada menjalankan executable (aspnet_regiis.exe). Mengapa saran ini tidak menggelembung lebih jauh? =)
Jimin
Tip cemerlang ... tapi dari mana datangnya showstopper itu? Saya tidak ingat pernah bertemu itu di versi IIS sebelumnya ...!
Mike Gledhill
25

Saya memiliki masalah ini dengan Windows Server 2012 dengan ASP .NET 4.5 Anda tidak dapat menggunakan aspnet_regiis.exe, dan hanya perlu menginstal ASP .NET 4.5 melalui Add Roles and Features Wizard:

masukkan deskripsi gambar di sini

Anda dapat menemukan item menu "Tambah Peran dan Fitur" di menu "Kelola", di sudut kanan Server Manager

C. Augusto Proiete
sumber
1
Item menu "Tambahkan Peran dan Fitur" dapat Anda temukan di menu "Kelola" di sudut kanan Server Manager
Alexander Trofimov
16

teks alternatif

Saya harus memeriksa opsi ini

Jsinh
sumber
1
Itu hanya mengatur apakah konten statis dapat dilayani atau tidak. Masalah saya adalah bahwa permintaan skrip sedang dipetakan ke konten statis. Jika saya mematikannya, IIS bahkan tidak mencoba ke server halaman, hanya memberi saya kosong.
ProfK
16

Saya memecahkan masalah ini dengan mengaktifkan WCF Services

Programs and Features > NET Framework 4.5 Services > WCF Services> HTTP Activation node

Tetapi Anda harus mengakui bahwa ini pengaturan SELURUH IIS, konfigurasikan / tebak / coba dan lihat / coba ini / coba yang menghabiskan 4 atau 5 hari kami mencoba mencari solusi seputar pendekatan ADALAH LUCU LENGKAP DAN UTAMA.

TENTANG, 'IIS' ADALAH TRIK PERCAYA DIRI TERTINGGI YANG PERNAH DIMAINKAN PADA MANKIND UNTUK MEMBERI TANGGAL

Richard
sumber
1
Yang harus Anda lakukan adalah mengaktifkan fitur konten statis untuk IIS. Ini tidak ada hubungannya dengan WCF.
ProfK
1
@ProfK tergantung pada mengapa Anda mendapatkan kesalahan itu, penyebab yang berbeda menghasilkan kesalahan yang sama - jika Anda mendapatkan kesalahan dengan file SVC yang dikonfigurasikan untuk menggunakan WCF, hal di atas memperbaikinya.
JohnLBevan
LOL setuju sepenuhnya, mem-porting beberapa situs dan hanya melihat 5 jenis kesalahan yang berbeda, semua tanpa pesan kesalahan aktual atau yang sangat samar. Contoh "Halaman tidak dapat ditampilkan karena kesalahan server internal telah terjadi" berarti Anda telah menambahkan jenis pantomim konten statis yang sudah ada.
mike nelson
15

Saya tahu ini adalah pertanyaan lama, tetapi saya baru saja memiliki ini dengan aplikasi 3,5 pada mesin Windows 8 saya yang telah dibangun kembali dan saya masih mendapatkan ini setelah aspnet_regiis -irudan ternyata menjadi ASP.NET 3.5 tidak menandai dalam Fitur Pengembangan Aplikasi (reputasi tidak cukup untuk mengirim gambar).

bicbmx
sumber
2
@bicbmx untuk gambar, Anda bisa berbagi link setelah upload bahwa di suatu tempat, misalnya pada imgur.com
superjos
12

Ada kemungkinan bahwa kumpulan aplikasi yang dibuat untuk aplikasi Anda secara default adalah versi 2. Jadi, meskipun Anda melihat penangan untuk ekstensi .svc dalam daftar itu tidak berfungsi dan memperlakukannya sebagai file statis. Yang Anda butuhkan adalah membuka properti kumpulan aplikasi dan mengubahnya ke versi 4.

Konstantin Salavatov
sumber
8

Daftarkan asp.net lagi .... akan menyelesaikan masalah.
masukkan deskripsi gambar di sini

Pergi ke Visual Studio Command Prompt,
Dan daftarkan asp.net sebagai windows \ microsoft.net \ Framework [.Net versi num] \ aspnet_regiis.exe -i

Sunil
sumber
2
aspnet_regiis.exe -saya menjawab dengan "Opsi ini tidak didukung pada versi sistem operasi ini." Mengapa IIS sangat menyebalkan?
Paul McCarthy
5

Saya memiliki masalah yang sama pada mesin windows 8 yang saya setting. Saya telah menginstal vs2012 sebelum vs2010, yang menginstal .NET framework 4.5. Saya memiliki kolam aplikasi saya berjalan di 4.0. Saya memastikan aspnet terdaftar untuk 4.0 menggunakan aspnet_regiis -i. Itu masih tidak berhasil. Kemudian saya membuka Fitur Windows dan memperhatikan bahwa 4,5 menambahkan satu set yang disebut ".NET Framework 4.5 Advanced Services". Saya mengaktifkan simpul Layanan WCF dan anak-anaknya dan kemudian endpoint svc saya beroperasi dengan benar. Semoga ini bisa membantu orang-orang yang pindah ke Windows 8.

IceNine
sumber
Server 2012, IIS8 di sini juga, terima kasih atas penunjuk yang Anda buat saya menuju arah yang benar. Bagi yang berminat, saya harus mengaktifkan peran Server Aplikasi dan Peran Server Web. Saya menemukan info yang saya butuhkan di sini: msdn.microsoft.com/en-us/library/hh167503(v=nav.70).aspx
John
3

Saya menemukan pertanyaan ini ketika saya mengalami masalah yang sama. Penyebab utama masalah saya adalah kumpulan aplikasi yang tidak dikonfigurasi dengan benar. Itu ditetapkan untuk 2.0 secara tidak sengaja, ketika itu harus diatur ke 4.0. Jawaban di tautan berikut membantu saya mengungkap masalah ini: http://forums.iis.net/t/1160143.aspx

Garrison Neely
sumber
2

Saya memiliki masalah yang sama. Ketika saya menambahkan konten statis untuk IIS, itu berfungsi dengan baik.

jasharbn
sumber
2

Hanya solusi lain yang mungkin saya temukan memiliki pesan kesalahan yang sama.

Ketika mencoba untuk mengatur aplikasi web .NET 4.0 ke kumpulan aplikasi baru saya menerima kesalahan aneh ini mengatakan kepada saya itu sedang mencoba untuk memproses file aspx saya dengan pengendali file statis, yang tidak masuk akal.

Untuk beberapa alasan ISAPI untuk .NET 4.0 ditetapkan untuk dinonaktifkan di area Pembatasan ISAPI dan CGI tingkat server di manajer IIS. Pengaturan untuk diaktifkan adalah semua yang diperlukan , namun manajer IIS 7.5 sangat berbelit-belit dan sulit untuk diikuti sehingga butuh waktu lama untuk memikirkannya.

Saya menduga bahwa karena itu adalah Aplikasi 4.0 yang tidak dapat diproses oleh Mesin 4.0, pengendali file statis digunakan secara default.

DarrenMB
sumber
2

Untuk orang lain yang membaca ini:

Ini dapat terjadi adalah jika versi .Net yang Anda daftarkan bukan yang dipilih di bawah 'Pengaturan Dasar' kumpulan aplikasi yang terlampir pada situs web Anda. Misalnya, kumpulan aplikasi situs Anda. Net v2.0 dipilih tetapi Anda mendaftar v4.0

b15
sumber
2

Untuk Windows 10 / Framework 4.7, saya harus mengaktifkan Aktivasi HTTP melalui metode berikut:

  1. Panel Kontrol> Program dan Fitur> Mengaktifkan atau menonaktifkan Fitur Windows
  2. Di bawah .NET Framework 4.7 Layanan Lanjutan, luaskan Layanan WCF, pilih untuk memeriksa Aktivasi HTTP dan apa pun yang Anda perlukan saat bekerja dengan WCF
  3. Klik OK dan biarkan instalasi melakukan tugasnya, kemudian buka prompt perintah administratif dan keluarkan perintah IISRESET
Will Buffington
sumber
1

cmd -> klik kanan -> Jalankan sebagai administrator

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -i

Safaa Elgendi
sumber
0

Menggunakan manajer IIS, saya menemukan bahwa file .aspx dipetakan (di bawah "Handler Mappings") ke ISAPI 2.0 - meskipun ASP.NET 4.5 sebelumnya telah diinstal. Mengedit mereka untuk menunjuk (juga) ke executable untuk ISAPI 4.0 64bit memperbaiki masalah.

Dapat dieksekusi ditemukan di% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_isapi.dll

Matthew Diggins
sumber
0

saya menerima pesan ini untuk aplikasi di iis 7.5 dengan kumpulan aplikasi klasik yang ditugaskan untuk .net 2.0. saya harus pergi ke Handler Mappings dan menambahkan dua peta skrip, keduanya sama dengan kecuali untuk namanya. satu nama adalah svc-ISAPI-2.0-64, yang lainnya adalah svc-ISAPI-2.0. Jalur permintaan adalah .svc. Dan yang Dapat Dieksekusi adalah% SystemRoot% \ Microsoft.NET \ Framework64 \ v2.0.50727 \ aspnet_isapi.dll. Saya memulai kembali iis dan semuanya senang

Robert
sumber
0

Salah satu skenario terburuk yang baru saja saya pecahkan adalah - memiliki entri yang saling bertentangan di Web.config.

Di mesin lokal saya, saya tidak memiliki ekstensi .woff terdaftar di IIS, jadi saya menambahkannya menggunakan Web.config. Tetapi pada server produksi .woff telah mendaftarkan jenis mime. Ini menyebabkan konflik tingkat aplikasi.

Bagian yang lucu adalah tidak ada kesalahan yang dicatat untuk ini. Hanya tebakan saja (pertama kali tentu saja).

Jadi bagi saya solusinya hanya menghapus dan / atau elemen dari web.config.

Ashish
sumber
0

Saya memiliki masalah yang sama, saya baru saja mengubah versi kerangka target di situs web ke versi yang dikembangkannya, sama dengan IIS. Ini menyelesaikan masalah saya. Semoga ini membantu...

Terima kasih

Arjun
sumber
0

bisa jadi banyak alasan, dalam kasus saya di bawah Application pool-> advance setting-> Aktifkan aplikasi 32 bit (harus benar). Itu disetel ke false sebelumnya.

madhur
sumber
-1

Arahkan ke aroma direktori Net dan arsitektur CPU menggunakan CMD atau PowerShell

Masukkan perintah ini: aspnet_regiis –r

jose vega
sumber
Dalam Windows Server 2008 R2 mengatakan: "Opsi ini tidak didukung pada Windows Vista."
CSharper
Tidak ada opsi bernama -r
NishantMittal