Saya mencoba untuk menggunakan aplikasi ASP.NET. Saya telah menyebarkan situs ke IIS, tetapi ketika mengunjunginya dengan browser, ini menunjukkan kepada saya ini:
server error
500 Internal Server Error.
Ada masalah dengan sumber daya yang Anda cari, dan tidak dapat ditampilkan.
Setelah mengutak-atik web.config, saya mendapat:
Halaman tidak dapat ditampilkan karena kesalahan server internal telah terjadi.
Bagaimana saya bisa melihat masalah aktual di balik kesalahan server ini?
asp.net
iis
error-handling
Yakub Jedryszek
sumber
sumber
Jawaban:
Pertama, Anda perlu mengaktifkan dan melihat kesalahan detail dari pesan web Anda, karena ini adalah pesan umum tanpa memberikan informasi tentang apa yang sebenarnya terjadi karena alasan keamanan.
Dengan kesalahan terperinci, Anda dapat menemukan masalah sebenarnya di sini.
Juga, jika Anda dapat menjalankan browser di server , Anda mendapatkan rincian tentang kesalahan, karena server mengenali bahwa Anda lokal dan menunjukkannya kepada Anda. Atau jika Anda dapat membaca log server menggunakan Event Viewer, Anda juga melihat rincian kesalahan Anda.
Pada IIS 6
Pada IIS 7
Catatan: Anda dapat menghindari Debug = true . Anda hanya perlu menutup kesalahan khusus untuk sementara waktu dan mendapatkan halaman kesalahan rinci.
Referensi: Mengaktifkan pesan kesalahan khusus Windows di artikel bantuan Go Daddy .
Juga, ini dapat membantu: Cara mengaktifkan pesan kesalahan terinci (dari IIS).
sumber
run the browser on the server
bekerja untuk saya .. terima kasih saudaraSaya mencabut rambut saya karena masalah ini. Memastikan entri berikut ada di
web.config
file root untuk saya:Ingat bahwa Anda harus menambahkan ini ke elemen XML yang ada , jika sudah ada. Anda tidak bisa hanya menambahkan di akhir file, karena Anda tidak dapat memiliki banyak salinan elemen apa pun.
sumber
Bagi saya, kode berikut di web.config adalah biang keladinya. Ketika saya menghapusnya, situs web berfungsi dengan baik.
sumber
Saya akhirnya memecahkan kesalahan "500 server Internal" ini ketika menggunakan aplikasi ASP.NET MVC 3.0 di godaddy.ocm shared hosting.
entah bagaimana ada perbedaan pada versi file DLL yang direferensikan dan versi yang disebutkan dalam file
web.config
.Saya mencoba semua opsi yang disebutkan di berbagai forum. Tidak ada yang membantu, meskipun semua orang menyarankan perbaikan yang sama, tetapi entah bagaimana itu tidak berhasil dalam skenario saya. Akhirnya setelah membenturkan kepalaku selama dua hari. Saya memutuskan untuk menghapus semua referensi file DLL dan menghapus web.cofig (membuat salinan lokal) dari proyek dan membiarkan aplikasi melempar kesalahan dan kemudian menambahkan file DLL satu per satu membuat salinan ke local = true.
Setelah semua file DLL ditambahkan, saya membuat aplikasi ASP.NET MVC baru dan menyalin web.config aplikasi baru ke aplikasi saya yang sebenarnya. Jadi aplikasi saya yang sebenarnya sekarang memiliki web.config baru, dan kemudian saya menyalin connectionstring dan referensi lain dari salinan web.config lokal yang saya simpan.
Saya baru saja mengkompilasi aplikasi dan menerbitkannya ke folder lokal dan FTP folder yang diterbitkan ke goDaddy.
Itu berhasil dan akhirnya masalah saya terpecahkan.
sumber
Dalam kasus saya, saya menempatkan kesalahan pada
web.config
file saya . Kunci aplikasi entah bagaimana diletakkan di bawah tag <appSettings>. Tapi saya heran mengapa itu tidak menampilkan kesalahan konfigurasi. Kesalahan 500 terlalu umum untuk menyelidiki masalah.sumber
Upaya pertama saya untuk menerbitkan dan kemudian menjalankan situs yang sangat sederhana yang hanya menghasilkan HTML "Halaman tidak dapat ditampilkan karena kesalahan server internal telah terjadi."
Masalahnya: Saya mengatur situs ke .NET 3.5 di Visual Studio (klik kanan proyek situs web -> Halaman Properti -> Build), tetapi situs Web di Azure dikonfigurasi sebagai .NET 4.0. Ups! Saya mengubahnya menjadi 3,5 di Azure, dan itu berhasil.
sumber
Selain saran lainnya, pastikan untuk mengubah
existingResponse
atribut darihttpErrors
nodeAuto
dariReplace
, atau untuk menghapus properti itu seluruhnya.sumber
IIS juga melaporkan kode status 500 tanpa petunjuk log peristiwa apa pun jika ada izin yang tidak mencukupi pada direktori home fisik (yaitu IIS_IUSRS tidak memiliki akses).
sumber
Dalam kasus saya, saya mengganti kode ini:
Kemudian ubah kerangka 3.5 ke kerangka 4. Ini menunjukkan kesalahan terperinci saya. Saya menghapus kode di:
Itu memecahkan masalah saya.
sumber
Untuk IIS 8 Ada langkah ekstra yang harus dilakukan selain mengubah customErrors = Off untuk menampilkan konten kesalahan.
Raul menjawab pertanyaan di tautan ini. Matikan kesalahan custom IIS8 oleh Raul
sumber
Mungkin file web.config Anda salah atau tidak memiliki beberapa tag. Saya memecahkan masalah saya menggunakan tag konfigurasi yang benar untuk .NET 4.
sumber
Saya menyadari izin untuk file dan folder di server Anda juga penting. Saya mengunggah file saya dari sistem operasi linux dan biasanya izin terbatas untuk membaca dan menulis. Jadi saat diunggah, izinnya masih sama seperti di mesin lokal.
Saya memiliki kesalahan yang sama dan saya baru saja mengubah izin untuk folder yang saya unggah dan kesalahan itu hilang.
Semoga ini bisa membantu seseorang.
sumber
Saya telah menghadapi masalah yang sama, tetapi sekarang masalah saya telah terselesaikan. Selalu gunakan di hosting ini ini berfungsi.
Saya juga akan merekomendasikan Anda semua untuk melakukan perubahan apa pun yang Anda ingin lakukan di file web.config Anda. Silakan lakukan satu per satu dan uji yang sama pada domain langsung sehingga Anda dapat menemukan masalah yang tepat atau fitur yang tidak diizinkan oleh penyedia hosting Anda.
sumber
Jika Anda menggunakan HttpHandler khusus (yaitu, menerapkan
IHttpModule
), pastikan Anda memeriksa panggilan keError
metode tersebut.Anda bisa meminta pawang Anda melempar aktual
HttpExceptions
(yang memilikiMessage
properti berguna ) selama debugging lokal seperti ini:Pastikan juga untuk memeriksa Pengecualian
InnerException
.sumber
500 server internal dapat muncul karena beberapa alasan. Alasan pertama mungkin karena file web.config tidak dibuat dengan benar, berarti Anda telah melewatkan beberapa tag di file web.config. Kedua kesalahan ini bisa disebabkan oleh beberapa masalah kode. Untuk memeriksa komponen aplikasi web mana yang menyebabkan kesalahan ini, Anda dapat memeriksa pengaturan Aplikasi dalam file web.config. Rincian pemecahan dan penelusuran 500 kesalahan server internal dengan diagram diberikan di sini:
sumber
Pastikan akun Anda menggunakan IIS 7. Untuk informasi lebih lanjut, lihat Menyesuaikan Pengaturan IIS pada Akun Windows Hosting Anda. Ikuti instruksi dalam Mengubah Mode Pipa pada Akun Hosting IIS Windows Anda. Pilih Mode Pipeline Terpadu. Di bagian Referensi Proyek Anda, atur Salin Lokal ke True untuk majelis berikut:
Tambahkan rakitan berikut ke proyek Anda, dan kemudian atur Salin Lokal ke True:
sumber
Terkadang, alasannya mungkin salah satu rakitan .dll Anda tidak terdaftar dengan benar di server.
Misalnya, Anda dapat berhasil menjalankan aplikasi web C # Excel di mesin lokal Anda dengan Office diinstal, sambil mendapatkan 500 kesalahan pada penyebaran server, karena tidak ada Office suite diinstal di server, dan dengan demikian Anda mendapatkan kesalahan server.
sumber
Bagi mereka yang memiliki kemungkinan ini (VPS hosting bukan web hosting):
Terhubung ke server hosting Anda melalui Remote Desktop. Buka Web Browser dari desktop jarak jauh Anda dan Anda akan melihat deskripsi detail kesalahan.
Anda tidak perlu mengubah web.config atau memaparkan detail apa pun kepada orang lain.
sumber
Jika Anda menggunakan IIS 8.5 mungkin Anda perlu mengubah pengaturan ID ApplicationPool dari ApplicationPoolId ke NetworkService
Klik kanan Pool Aplikasi yang dimaksud, klik pada "Pengaturan Lanjut" dan kemudian gulir ke bawah ke ID - itu mungkin akan diatur ke ApplicationPoolIdentity . Klik tombol (..) dan pilih NetworkService dari daftar dropdown sebagai gantinya.
Pastikan juga bahwa itu adalah aplikasi .NET 2.0 yang tidak Anda referensi kerangka kerja 4.0 di App Pool Anda.
sumber
Sebelum mengubah
web.config
file, saya akan memeriksa apakah.NET Framework
versi yang Anda gunakan persis (maksud saya, 4,5! = 4.5.2) sama denganGoDaddy
pengaturan Anda (pengaturan ASP.Net di AndaPlesk panel
). Itu akan secara otomatis mengubah file web.config Anda ke kerangka kerja yang benar.Juga perhatikan bahwa untuk saat ini (Januari '16),
GoDaddy
bekerja denganASP.Net 3.5
dan4.5.2
. Untuk menggunakan4.5.2
dengan Visual Studio itu harus2012
atau yang lebih baru, dan jika tidak 2015, Anda harus mengunduh dan menginstal Paket Pengembang .NET Framework 4.5.2.Jika masih tidak berfungsi, maka ya, langkah Anda berikutnya harus mengaktifkan pelaporan kesalahan terinci sehingga Anda dapat men-debugnya.
sumber
Saya baru-baru ini mengalami masalah yang sama, ruang disk penuh di server. Membersihkan beberapa ruang telah menyelesaikan masalah.
sumber
Coba kompilasi dalam mode Debug (dalam Visual Studio). Jika Anda dalam mode Release, banyak kesalahan penulisan ulang URL tidak akan tersedia.
Gambar menunjukkan kotak centang pemilihan Debug di Visual Studio
sumber