Saya Menginstal DotNetOpenAuth SDK-3.4.5.10201.vsix dan saya tidak bisa membuatnya berfungsi. Ini berfungsi secara lokal (ketika saya menjalankan sebagai localhost) tetapi ketika saya mencoba untuk menerbitkannya tidak berfungsi.
Pesan kesalahan IIS yang saya dapatkan adalah
Ringkasan Kesalahan
HTTP Error 500.22 - Kesalahan Server Internal
Pengaturan ASP.NET telah terdeteksi yang tidak berlaku dalam mode pipeline dikelola terkelola.
DAN
Module ConfigurationValidationModule Notification BeginRequest Handler StaticFile Error Code 0x80070032
lalu ada beberapa saran tentang cara mengatasi masalah:
Hal yang dapat Anda coba:
Migrasikan konfigurasi ke
system.webServer/modules
bagian. Anda dapat melakukannya secara manual atau dengan menggunakan AppCmd dari baris perintah - misalnya%SystemRoot%\system32\inetsrv\appcmd migrate config "Default Web Site/"
,. MenggunakanAppCmd
untuk memigrasi aplikasi Anda akan memungkinkannya untuk bekerja dalam mode Terpadu, dan terus bekerja dalam mode Klasik dan pada versi IIS sebelumnya.Jika Anda yakin tidak masalah untuk mengabaikan kesalahan ini, itu dapat dinonaktifkan dengan menyetel
system.webServer/validation@validateIntegratedModeConfiguration
ke false.Atau, alihkan aplikasi ke kumpulan aplikasi mode Klasik - misalnya
%SystemRoot%\system32\inetsrv\appcmd set app "Default Web Site/" /applicationPool:"Classic .NET AppPool"
,. Lakukan ini hanya jika Anda tidak dapat memigrasi aplikasi Anda.
(Setel "Situs Web Default" dan "Classic .NET AppPool" ke jalur aplikasi dan nama kumpulan aplikasi Anda)
Tetapi masalahnya adalah bahwa saya tidak memiliki akses ke server ISS karena saya bukan pemiliknya. Apakah ada cara untuk menyelesaikan ini?
true
adalah agar Anda dapat meninggalkan roda pelatihan Anda dan IIS berteriak pada Anda setiap kali Anda menambahkan pengaturan yang tidak akan berfungsi dalam mode terintegrasi. Ini untuk yang belum berpengalaman, tapi menghalangi.Menambahkan
<validation validateIntegratedModeConfiguration="false"/>
alamat gejala, tetapi tidak sesuai untuk semua keadaan. Setelah membahas masalah ini beberapa kali, saya berharap dapat membantu orang lain tidak hanya mengatasi masalah tetapi juga memahaminya. (Yang menjadi semakin penting ketika IIS 6 memudar menjadi mitos dan rumor.)Latar Belakang:
Masalah ini dan kebingungan seputar hal itu dimulai dengan pengenalan ASP.NET 2.0 dan IIS 7. IIS 6 telah dan terus memiliki hanya satu mode pipeline, dan itu setara dengan apa yang IIS 7+ sebut mode "Klasik". Mode pipa kedua, yang lebih baru, dan yang direkomendasikan untuk semua aplikasi yang berjalan pada IIS 7+ disebut mode "Terpadu".
Jadi, apa bedanya? Perbedaan utama adalah bagaimana ASP.NET berinteraksi dengan IIS.
Mode klasikterbatas pada pipa ASP.NET yang tidak dapat berinteraksi dengan pipa IIS. Pada dasarnya permintaan masuk dan jika IIS 6 / Classic telah diberitahu, melalui konfigurasi server, bahwa ASP.NET dapat mengatasinya maka IIS melepaskan permintaan ke ASP.NET dan melanjutkan. Arti penting ini dapat diperoleh dari sebuah contoh. Jika saya mengotorisasi akses ke file gambar statis, saya tidak akan dapat melakukannya dengan modul ASP.NET karena pipa IIS 6 akan menangani permintaan itu sendiri dan ASP.NET tidak akan pernah melihat permintaan itu karena mereka tidak pernah diserahkan . * Di sisi lain, mengesahkan pengguna mana yang dapat mengakses halaman .ASPX seperti permintaan untuk Foo.aspx adalah sepele bahkan dalam IIS 6 / Classic karena IIS selalu menyerahkan permintaan tersebut ke pipa ASP.NET. Dalam mode Klasik, ASP.NET tidak tahu apa yang dimilikinya.
Mode terintegrasi direkomendasikan karena modul dan penangan ASP.NET dapat berinteraksi langsung dengan pipa IIS. Pipa IIS tidak lagi hanya menyerahkan permintaan ke pipa ASP.NET, sekarang memungkinkan kode ASP.NET untuk menghubungkan langsung ke pipa IIS dan semua permintaan yang mengenai itu. Ini berarti bahwa modul ASP.NET tidak hanya dapat mengamati permintaan untuk file gambar statis, tetapi dapat mencegat permintaan tersebut dan mengambil tindakan dengan menolak akses, mencatat permintaan, dll.
Mengatasi kesalahan:
Kemudian lagi mungkin Anda memberikan aplikasi Anda facelift atau itu baik-baik saja sampai Anda menginstal perpustakaan pihak ke-3 melalui NuGet, secara manual, atau dengan cara lain. Dalam hal ini sepenuhnya mungkin
httpHandlers
atauhttpModules
telah ditambahkansystem.web
. Hasilnya adalah kesalahan yang Anda lihat karenavalidateIntegratedModeConfiguration
defaulttrue
. Sekarang Anda memiliki dua pilihan:httpHandlers
danhttpModules
darisystem.web
. Ada beberapa kemungkinan hasil dari ini:httpHandlers
danhttpModules
yang paket nuget terus menambahsystem.web
, hey melakukan apa yang Anda butuhkan untuk.validateIntegratedModeConfiguration
untukfalse
, tapi setidaknya Anda tahu apa yang Anda lakukan dan mengapa itu penting.Bacaan yang bagus:
* Tentu saja ada cara untuk memasukkan semua hal aneh ke dalam pipa ASP.NET dari IIS 6 / Classic melalui mantera seperti pemetaan wildcard , jika Anda suka hal semacam itu.
sumber
Jika Anda masih perlu menggunakan Modul HTTP, Anda harus mengonfigurasinya (.NET 4.0 framework) sebagai berikut:
sumber
Saya mengalami masalah ini tetapi memiliki perbaikan yang berbeda. Itu melibatkan memperbarui
Control Panel>Administrative Tools>IIS Manager
dan mengembalikan Pipa Terkelola situs App saya dariIntegrated
menjadiClassic
.sumber
Application Pools
di pohon di sebelah kiri, klik dua kali pada kumpulan yang ingin Anda ubah, dan pilih mode pipa.Periksa apakah ada konflik dalam otentikasi IIS Anda. yaitu Anda mengaktifkan otentikasi anonim dan peniruan ASP.NET keduanya dapat menyebabkan kesalahan juga.
sumber
Di web.config Anda, pastikan kunci-kunci ini ada:
Serta memeriksa Asp.Net Impresonation = Nonaktifkan Dalam Autorisasi Situs IIS
sumber
Saya mengalami masalah ini dan terinspirasi oleh jawaban @Jeremy Cook, saya menggigit peluru untuk mencari tahu apa yang menyebabkan IIS 7 mode Terpadu tidak menyukai web.config saya. Inilah skenario saya:
Saya ingin menggunakan atribut routing dalam suatu proyek yang (sayangnya) harus menggunakan .NET 4 dan karenanya tidak dapat menggunakan Web API 2.2 (yang membutuhkan .NET 4.5). Paket NuGet yang bermaksud baik menambahkan bagian ini di bawah
<system.web>
bagian:[Saya katakan bermaksud baik, karena bagian ini diperlukan pada versi IIS yang lebih lama]
Menghapus bagian ini membuat saya melewati HTTP 500.23 !!
Rangkuman: Saya mendukung kata-kata Jeremy bahwa penting untuk memahami mengapa segala sesuatunya tidak berfungsi daripada hanya "menutupi gejalanya". Bahkan jika Anda harus menutupi gejalanya, Anda tahu apa yang Anda lakukan (dan mengapa) :-)
sumber
Ini bekerja untuk saya:
Sepertinya ada sesuatu yang pergi ke selatan ketika saya awalnya membuat situs. Saya benci solusi yang mirip dengan "Restart mesin Anda, lalu instal ulang windows" tanpa mengetahui apa yang menyebabkan kesalahan. Tetapi, ini berhasil bagi saya. Cepat dan sederhana. Semoga ini bisa membantu orang lain.
sumber
Dalam kasus saya, saya kehilangan dll di folder bin yang direferensikan dalam file web.config. Jadi periksa apakah Anda menggunakan pengaturan apa pun di web.config tetapi sebenarnya tidak memiliki dll.
Terima kasih
sumber
Butuh waktu beberapa jam untuk menyelesaikan ini karena semua dari pengaturan yang saya temukan di sini tentang kesalahan ini adalah sama tetapi masih tidak berhasil. Masalahnya adalah bahwa saya memiliki folder di layanan web saya dari mana file harus dikirim ke perangkat WinCE, setelah mengkonversi folder itu ke aplikasi dengan Classic.NetAppPool mulai berfungsi.
sumber
Langkah di bawah menyelesaikan masalah saya:
Buka
CMD
Prompt dengan Hak Istimewa Admin.Lari :
iisreset.
Semoga ini membantu.
sumber
Metode untuk lokal Adalah kesalahan
sumber