Bagikan melalui


Memecahkan masalah ASP.NET Core pada Azure App Service dan IIS

Oleh Justin Kotalik

Artikel ini menyediakan informasi tentang kesalahan startup aplikasi umum dan instruksi tentang cara mendiagnosis kesalahan saat aplikasi disebarkan ke Azure App Service atau IIS:

Kesalahan pengaktifan aplikasi
Menjelaskan skenario kode status HTTP startup umum.

Memecahkan masalah di Azure App Service
Menyediakan saran pemecahan masalah untuk aplikasi yang disebarkan ke Azure App Service.

Memecahkan masalah di IIS
Menyediakan saran pemecahan masalah untuk aplikasi yang disebarkan ke IIS atau berjalan di IIS Express secara lokal. Panduan ini berlaku untuk penyebaran desktop Windows Server dan Windows.

Menghapus cache paket
Menjelaskan apa yang harus dilakukan saat paket yang tidak melekat merusak aplikasi saat melakukan peningkatan besar atau mengubah versi paket.

Sumber Daya Tambahan:
Mencantumkan topik pemecahan masalah tambahan.

Kesalahan pengaktifan aplikasi

Di Visual Studio, server default proyek ASP.NET Core adalah Kestrel. Visual studio dapat dikonfigurasi untuk menggunakan IIS Express. 502.5 - Kegagalan Proses atau 500.30 - Kegagalan Mulai yang terjadi saat penelusuran kesalahan secara lokal dengan IIS Express dapat didiagnosis menggunakan saran dalam topik ini.

403.14 Terlarang

Aplikasi gagal dimulai. Kesalahan berikut dicatat:

The Web server is configured to not list the contents of this directory.

Kesalahan biasanya disebabkan oleh penyebaran yang rusak pada sistem hosting, yang mencakup salah satu skenario berikut:

  • Aplikasi ini disebarkan ke folder yang salah pada sistem hosting.
  • Proses penyebaran gagal memindahkan semua file dan folder aplikasi ke folder penyebaran pada sistem hosting.
  • File web.config hilang dari penyebaran, atau konten file web.config salah format.

Lakukan langkah-langkah berikut:

  1. Hapus semua file dan folder dari folder penyebaran pada sistem hosting.
  2. Sebarkan ulang konten folder publikasi aplikasi ke sistem hosting menggunakan metode penyebaran normal Anda, seperti Visual Studio, PowerShell, atau penyebaran manual:
    • Konfirmasikan bahwa file web.config ada dalam penyebaran dan isinya sudah benar.
    • Saat menghosting di Azure App Service, konfirmasikan bahwa aplikasi disebarkan ke D:\home\site\wwwroot folder .
    • Saat aplikasi dihosting oleh IIS, konfirmasikan bahwa aplikasi disebarkan ke jalur Fisik IIS yang ditampilkan di Pengaturan Dasar Manajer IIS.
  3. Konfirmasikan bahwa semua file dan folder aplikasi disebarkan dengan membandingkan penyebaran pada sistem hosting dengan konten folder publikasi proyek.

Untuk informasi selengkapnya tentang tata letak aplikasi ASP.NET Core yang diterbitkan, lihat struktur direktori ASP.NET Core. Untuk informasi selengkapnya tentang file web.config , lihat ASP.NET Core Module (ANCM) untuk IIS.

500 Kesalahan Server Internal

Aplikasi dimulai, tetapi kesalahan mencegah server memenuhi permintaan.

Kesalahan ini terjadi dalam kode aplikasi selama startup atau saat membuat respons. Respons mungkin tidak berisi konten, atau respons mungkin muncul sebagai Kesalahan Server Internal 500 di browser. Log Peristiwa Aplikasi biasanya menyatakan bahwa aplikasi dimulai secara normal. Dari perspektif server, itu benar. Aplikasi memang dimulai, tetapi tidak dapat menghasilkan respons yang valid. Jalankan aplikasi pada prompt perintah di server atau aktifkan log stdout Modul Inti ASP.NET untuk memecahkan masalah.

Kesalahan ini juga dapat terjadi ketika Bundel Hosting .NET Core tidak diinstal atau rusak. Menginstal atau memperbaiki penginstalan .NET Core Hosting Bundle (untuk IIS) atau Visual Studio (untuk IIS Express) dapat memperbaiki masalah.

500.0 Kegagalan Beban Handler Dalam Proses

Proses pekerja gagal. Aplikasi tidak dimulai.

Terjadi kesalahan yang tidak diketahui saat memuat komponen Modul Inti ASP.NET. Ikuti salah satu tindakan berikut:

  • Hubungi Dukungan Microsoft (pilih Alat Pengembang lalu ASP.NET Core).
  • Ajukan pertanyaan tentang Stack Overflow.
  • Ajukan masalah pada repositori GitHub kami.

500.30 Kegagalan Startup Dalam Proses

Proses pekerja gagal. Aplikasi tidak dimulai.

Modul ASP.NET Core mencoba memulai .NET Core CLR dalam proses, tetapi gagal dimulai. Penyebab kegagalan startup proses biasanya dapat ditentukan dari entri di Log Peristiwa Aplikasi dan log stdout Modul Inti ASP.NET.

Kondisi kegagalan umum:

  • Aplikasi ini salah dikonfigurasi karena menargetkan versi kerangka kerja bersama ASP.NET Core yang tidak ada. Periksa versi kerangka kerja bersama ASP.NET Core mana yang diinstal pada komputer target.
  • Menggunakan Azure Key Vault, kurangnya izin ke Key Vault. Periksa kebijakan akses di Key Vault yang ditargetkan untuk memastikan bahwa izin yang benar diberikan.

500.31 ANCM Gagal Menemukan Dependensi Asli

Proses pekerja gagal. Aplikasi tidak dimulai.

Modul ASP.NET Core mencoba memulai runtime .NET Core dalam proses, tetapi gagal dimulai. Penyebab paling umum dari kegagalan startup ini adalah ketika Microsoft.NETCore.App runtime atau Microsoft.AspNetCore.App tidak diinstal. Jika aplikasi disebarkan ke target ASP.NET Core 3.0 dan versi tersebut tidak ada di komputer, kesalahan ini terjadi. Contoh pesan kesalahan berikut:

The specified framework 'Microsoft.NETCore.App', version '3.0.0' was not found.
  - The following frameworks were found:
      2.2.1 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]
      3.0.0-preview5-27626-15 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]
      3.0.0-preview6-27713-13 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]
      3.0.0-preview6-27714-15 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]
      3.0.0-preview6-27723-08 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]

Pesan kesalahan mencantumkan semua versi .NET Core yang diinstal dan versi yang diminta oleh aplikasi. Untuk memperbaiki kesalahan ini, baik:

  • Instal versi .NET Core yang sesuai pada komputer.
  • Ubah aplikasi untuk menargetkan versi .NET Core yang ada di komputer.
  • Terbitkan aplikasi sebagai penyebaran mandiri.

Saat berjalan dalam pengembangan ( ASPNETCORE_ENVIRONMENT variabel lingkungan diatur ke Development), kesalahan spesifik ditulis ke respons HTTP. Penyebab kegagalan startup proses juga ditemukan di Log Peristiwa Aplikasi.

500.32 ANCM Gagal Memuat dll

Proses pekerja gagal. Aplikasi tidak dimulai.

Penyebab paling umum untuk kesalahan ini adalah aplikasi diterbitkan untuk arsitektur prosesor yang tidak kompatibel. Jika proses pekerja berjalan sebagai aplikasi 32-bit dan aplikasi diterbitkan ke target 64-bit, kesalahan ini terjadi.

Untuk memperbaiki kesalahan ini, baik:

  • Terbitkan ulang aplikasi untuk arsitektur prosesor yang sama dengan proses pekerja.
  • Terbitkan aplikasi sebagai penyebaran yang bergantung pada kerangka kerja.

Kegagalan Beban Handler Permintaan ANCM 500.33

Proses pekerja gagal. Aplikasi tidak dimulai.

Aplikasi ini tidak mereferensikan Microsoft.AspNetCore.App kerangka kerja. Hanya aplikasi yang menargetkan kerangka kerja yang Microsoft.AspNetCore.App dapat dihosting oleh Modul Inti ASP.NET.

Untuk memperbaiki kesalahan ini, konfirmasikan bahwa aplikasi menargetkan Microsoft.AspNetCore.App kerangka kerja. .runtimeconfig.json Periksa untuk memverifikasi kerangka kerja yang ditargetkan oleh aplikasi.

500.34 Model Hosting Campuran ANCM Tidak Didukung

Proses pekerja tidak dapat menjalankan aplikasi dalam proses dan aplikasi yang tidak diproses dalam proses yang sama.

Untuk memperbaiki kesalahan ini, jalankan aplikasi di kumpulan aplikasi IIS terpisah.

500.35 ANCM Beberapa Aplikasi Dalam Proses dalam Proses yang sama

Proses pekerja tidak dapat menjalankan beberapa aplikasi dalam proses dalam proses yang sama.

Untuk memperbaiki kesalahan ini, jalankan aplikasi di kumpulan aplikasi IIS terpisah.

500.36 ANCM Out-Of-Process Handler Load Failure

Handler permintaan di luar proses, aspnetcorev2_outofprocess.dll, tidak berada di samping file aspnetcorev2.dll . Ini menunjukkan penginstalan modul ASP.NET Core yang rusak.

Untuk memperbaiki kesalahan ini, perbaiki penginstalan .NET Core Hosting Bundle (untuk IIS) atau Visual Studio (untuk IIS Express).

500.37 ANCM Gagal Memulai Dalam Batas Waktu Startup

ANCM gagal dimulai dalam batas waktu startup yang disediakan. Secara default, batas waktu adalah 120 detik.

Kesalahan ini dapat terjadi saat memulai sejumlah besar aplikasi pada komputer yang sama. Periksa lonjakan penggunaan CPU/Memori di server selama startup. Anda mungkin perlu mengejutkan proses startup beberapa aplikasi.

DLL Aplikasi ANCM 500.38 Tidak Ditemukan

ANCM gagal menemukan DLL aplikasi, yang seharusnya berada di samping yang dapat dieksekusi.

Kesalahan ini terjadi saat menghosting aplikasi yang dikemas sebagai file tunggal yang dapat dieksekusi menggunakan model hosting dalam proses. Model dalam proses mengharuskan ANCM memuat aplikasi .NET Core ke dalam proses IIS yang ada. Skenario ini tidak didukung oleh model penyebaran file tunggal. Gunakan salah satu pendekatan berikut dalam file proyek aplikasi untuk memperbaiki kesalahan ini:

  1. Nonaktifkan penerbitan file tunggal dengan mengatur PublishSingleFile properti MSBuild ke false.
  2. Beralih ke model hosting di luar proses dengan mengatur AspNetCoreHostingModel properti MSBuild ke OutOfProcess.

502.5 Process Failure

Proses pekerja gagal. Aplikasi tidak dimulai.

Modul ASP.NET Core mencoba memulai proses pekerja tetapi gagal dimulai. Penyebab kegagalan startup proses biasanya dapat ditentukan dari entri di Log Peristiwa Aplikasi dan log stdout Modul Inti ASP.NET.

Kondisi kegagalan umum adalah aplikasi salah dikonfigurasi karena menargetkan versi kerangka kerja bersama ASP.NET Core yang tidak ada. Periksa versi kerangka kerja bersama ASP.NET Core mana yang diinstal pada komputer target. Kerangka kerja bersama adalah sekumpulan rakitan (file.dll) yang diinstal pada komputer dan dirujuk oleh metapackage seperti Microsoft.AspNetCore.App. Referensi metapackage dapat menentukan versi minimum yang diperlukan. Untuk informasi selengkapnya, lihat Kerangka kerja bersama.

Halaman kesalahan Kegagalan Proses 502.5 dikembalikan ketika kesalahan konfigurasi hosting atau aplikasi menyebabkan proses pekerja gagal:

Gagal memulai aplikasi (ErrorCode '0x800700c1')

EventID: 1010
Source: IIS AspNetCore Module V2
Failed to start application '/LM/W3SVC/6/ROOT/', ErrorCode '0x800700c1'.

Aplikasi gagal dimulai karena rakitan aplikasi (.dll) tidak dapat dimuat.

Kesalahan ini terjadi ketika ada ketidakcocokan bitness antara aplikasi yang diterbitkan dan proses w3wp/iisexpress.

Konfirmasikan bahwa pengaturan 32-bit kumpulan aplikasi sudah benar:

  1. Pilih kumpulan aplikasi di Kumpulan Aplikasi Manajer IIS.
  2. Pilih Pengaturan Tingkat Lanjut di bawah Edit Kumpulan Aplikasi di panel Tindakan.
  3. Atur Aktifkan Aplikasi 32-Bit:
    • Jika menyebarkan aplikasi 32-bit (x86), atur nilai ke True.
    • Jika menyebarkan aplikasi 64-bit (x64), atur nilai ke False.

Konfirmasikan bahwa tidak ada konflik antara <Platform> properti MSBuild dalam file proyek dan bitness aplikasi yang diterbitkan.

Gagal memulai aplikasi (ErrorCode '0x800701b1')

EventID: 1010
Source: IIS AspNetCore Module V2
Failed to start application '/LM/W3SVC/3/ROOT', ErrorCode '0x800701b1'.

Aplikasi gagal dimulai karena Layanan Windows gagal dimuat.

Salah satu layanan umum yang perlu diaktifkan adalah layanan "null". Perintah berikut mengaktifkan null Layanan Windows:

sc.exe start null

Reset koneksi

Jika terjadi kesalahan setelah header dikirim, sudah terlambat bagi server untuk mengirim Kesalahan Server Internal 500 saat terjadi kesalahan. Ini sering terjadi ketika kesalahan terjadi selama serialisasi objek kompleks untuk respons. Jenis kesalahan ini muncul sebagai kesalahan pengaturan ulang koneksi pada klien. Pengelogan aplikasi dapat membantu memecahkan masalah jenis kesalahan ini.

Batas startup default

Modul ASP.NET Core dikonfigurasi dengan startupTimeLimit default 120 detik. Saat dibiarkan pada nilai default, aplikasi mungkin memerlukan waktu hingga dua menit untuk memulai sebelum modul mencatat kegagalan proses. Untuk informasi tentang mengonfigurasi modul, lihat Atribut elemen aspNetCore.

Memecahkan masalah di Azure App Service

Penting

ASP.NET Rilis pratinjau Core dengan Azure App Service

ASP.NET Rilis pratinjau Core tidak disebarkan ke Azure App Service secara default. Untuk menghosting aplikasi yang menggunakan rilis pratinjau ASP.NET Core, lihat Menyebarkan rilis pratinjau ASP.NET Core ke Azure App Service.

Aliran Log Azure App Services

Log Azure App Services mengalirkan informasi pengelogan saat terjadi. Untuk melihat log streaming:

  1. Di portal Azure, buka aplikasi di App Services.
  2. Di panel kiri, navigasikan ke Memantau>Log App Service. App Service Logs
  3. Pilih Sistem File untuk Pengelogan Server Web. Aktifkan pengelogan Aplikasi secara opsional. enable logging
  4. Di panel kiri, navigasikan ke Aliran Log Pemantauan>, lalu pilih Log aplikasi atau Log Server Web.

Monitoring Log stream

Gambar berikut menunjukkan output log aplikasi:

app logs

Log streaming memiliki beberapa latensi dan mungkin tidak segera ditampilkan.

Log Peristiwa Aplikasi (Azure App Service)

Untuk mengakses Log Peristiwa Aplikasi, gunakan bilah Diagnosis dan selesaikan masalah di portal Azure:

  1. Di portal Azure, buka aplikasi di App Services.
  2. Pilih Diagnosis dan selesaikan masalah.
  3. Pilih judul Alat Diagnostik.
  4. Di bawah Alat Dukungan, pilih tombol Peristiwa Aplikasi.
  5. Periksa kesalahan terbaru yang disediakan oleh entri IIS AspNetCoreModule atau IIS AspNetCoreModule V2 di kolom Sumber .

Alternatif untuk menggunakan bilah Diagnosis dan selesaikan masalah adalah memeriksa file Log Peristiwa Aplikasi secara langsung menggunakan Kudu:

  1. Buka Alat Tingkat Lanjut di area Alat Pengembangan. Pilih tombol Buka→ . Konsol Kudu terbuka di tab atau jendela browser baru.
  2. Menggunakan bilah navigasi di bagian atas halaman, buka konsol Debug dan pilih CMD.
  3. Pilih folder LogFiles.
  4. Pilih ikon pensil di eventlog.xml samping file.
  5. Periksa log. Gulir ke bagian bawah log untuk melihat peristiwa terbaru.

Menjalankan aplikasi di konsol Kudu

Banyak kesalahan startup tidak menghasilkan informasi yang berguna di Log Peristiwa Aplikasi. Anda dapat menjalankan aplikasi di Konsol Eksekusi Jarak Jauh Kudu untuk menemukan kesalahan:

  1. Buka Alat Tingkat Lanjut di area Alat Pengembangan. Pilih tombol Buka→ . Konsol Kudu terbuka di tab atau jendela browser baru.
  2. Menggunakan bilah navigasi di bagian atas halaman, buka konsol Debug dan pilih CMD.

Menguji aplikasi 32-bit (x86)

Rilis saat ini

  1. cd d:\home\site\wwwroot
  2. Jalankan aplikasi:
    • Jika aplikasi adalah penyebaran yang bergantung pada kerangka kerja:

      dotnet .\{ASSEMBLY NAME}.dll
      
    • Jika aplikasi adalah penyebaran mandiri:

      {ASSEMBLY NAME}.exe
      

Output konsol dari aplikasi yang menampilkan kesalahan disalurkan ke konsol Kudu.

Penyebaran yang bergantung pada kerangka kerja yang berjalan pada rilis pratinjau

Memerlukan penginstalan ekstensi situs Runtime ASP.NET Core {VERSION} (x86).

  1. cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x32 ({X.Y} adalah versi runtime)
  2. Jalankan aplikasi: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll

Output konsol dari aplikasi yang menampilkan kesalahan disalurkan ke konsol Kudu.

Menguji aplikasi 64-bit (x64)

Rilis saat ini

  • Jika aplikasi adalah penyebaran dependen kerangka kerja 64-bit (x64):
    1. cd D:\Program Files\dotnet
    2. Jalankan aplikasi: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll
  • Jika aplikasi adalah penyebaran mandiri:
    1. cd D:\home\site\wwwroot
    2. Jalankan aplikasi: {ASSEMBLY NAME}.exe

Output konsol dari aplikasi yang menampilkan kesalahan disalurkan ke konsol Kudu.

Penyebaran yang bergantung pada kerangka kerja yang berjalan pada rilis pratinjau

Memerlukan penginstalan ekstensi situs Runtime ASP.NET Core {VERSION} (x64).

  1. cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64 ({X.Y} adalah versi runtime)
  2. Jalankan aplikasi: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll

Output konsol dari aplikasi yang menampilkan kesalahan disalurkan ke konsol Kudu.

ASP.NET log stdout Modul Inti (Azure App Service)

Peringatan

Kegagalan untuk menonaktifkan log stdout dapat menyebabkan kegagalan aplikasi atau server. Tidak ada batasan ukuran file log atau jumlah file log yang dibuat. Hanya gunakan pengelogan stdout untuk memecahkan masalah pengaktifan aplikasi.

Untuk pengelogan umum di aplikasi ASP.NET Core setelah startup, gunakan pustaka pengelogan yang membatasi ukuran file log dan memutar log. Untuk informasi selengkapnya, lihat penyedia pengelogan pihak ketiga.

Log stdout Modul Inti ASP.NET sering merekam pesan kesalahan yang berguna yang tidak ditemukan di Log Peristiwa Aplikasi. Untuk mengaktifkan dan melihat log stdout:

  1. Di Portal Microsoft Azure, navigasikan ke aplikasi web.
  2. Di bilah App Service , masukkan kudu di kotak pencarian.
  3. Pilih Alat>Tingkat Lanjut.
  4. Pilih CmD konsol > debug.
  5. Menavigasi ke situs/wwwroot
  6. Pilih ikon pensil untuk mengedit file web.config .
  7. <aspNetCore /> Di elemen , atur stdoutLogEnabled="true" dan pilih Simpan.

Nonaktifkan pengelogan stdout saat pemecahan masalah selesai dengan mengatur stdoutLogEnabled="false".

Untuk informasi lebih lanjut, lihat ASP.NET Core Module (ANCM) untuk IIS.

log debug Modul Inti ASP.NET (Azure App Service)

Log debug Modul inti ASP.NET menyediakan pengelogan tambahan yang lebih mendalam dari Modul inti ASP.NET. Untuk mengaktifkan dan melihat log stdout:

  1. Untuk mengaktifkan log diagnostik yang ditingkatkan, lakukan salah satu hal berikut:
    • Ikuti instruksi dalam Log diagnostik yang ditingkatkan untuk mengonfigurasi aplikasi untuk pengelogan diagnostik yang ditingkatkan. Sebarkan ulang aplikasi.
    • Tambahkan yang <handlerSettings> ditampilkan di Log diagnostik yang ditingkatkan ke file web.config aplikasi langsung menggunakan konsol Kudu:
      1. Buka Alat Tingkat Lanjut di area Alat Pengembangan. Pilih tombol Buka→ . Konsol Kudu terbuka di tab atau jendela browser baru.
      2. Menggunakan bilah navigasi di bagian atas halaman, buka konsol Debug dan pilih CMD.
      3. Buka folder ke situs>jalur wwwroot. Edit file web.config dengan memilih tombol pensil. Tambahkan bagian seperti yang <handlerSettings> ditunjukkan dalam Log diagnostik yang disempurnakan. Pilih tombol Simpan.
  2. Buka Alat Tingkat Lanjut di area Alat Pengembangan. Pilih tombol Buka→ . Konsol Kudu terbuka di tab atau jendela browser baru.
  3. Menggunakan bilah navigasi di bagian atas halaman, buka konsol Debug dan pilih CMD.
  4. Buka folder ke situs>jalur wwwroot. Jika Anda tidak menyediakan jalur untuk file aspnetcore-debug.log , file akan muncul dalam daftar. Jika Anda menyediakan jalur, navigasikan ke lokasi file log.
  5. Buka file log dengan tombol pensil di samping nama file.

Nonaktifkan pengelogan debug saat pemecahan masalah selesai:

Untuk menonaktifkan log debug yang ditingkatkan, lakukan salah satu hal berikut:

  • <handlerSettings> Hapus dari file web.config secara lokal dan sebarkan ulang aplikasi.
  • Gunakan konsol Kudu untuk mengedit file web.config dan menghapus bagian .<handlerSettings> Simpan file.

Untuk informasi selengkapnya, lihat Pembuatan log dan pengalihan dengan Modul ASP.NET Core.

Peringatan

Kegagalan untuk menonaktifkan log debug dapat menyebabkan kegagalan aplikasi atau server. Tidak ada batasan ukuran file log. Hanya gunakan pengelogan debug untuk memecahkan masalah pengaktifan aplikasi.

Untuk pengelogan umum di aplikasi ASP.NET Core setelah startup, gunakan pustaka pengelogan yang membatasi ukuran file log dan memutar log. Untuk informasi selengkapnya, lihat penyedia pengelogan pihak ketiga.

Aplikasi lambat atau menggantung (Azure App Service)

Saat aplikasi merespons dengan lambat atau macet pada permintaan, lihat Memecahkan masalah performa aplikasi web yang lambat di Azure App Service.

Bilah pemantauan

Bilah pemantauan memberikan pengalaman pemecahan masalah alternatif untuk metode yang dijelaskan sebelumnya dalam topik. Bilah ini dapat digunakan untuk mendiagnosis kesalahan seri 500.

Konfirmasikan bahwa Ekstensi Inti ASP.NET diinstal. Jika ekstensi tidak diinstal, instal secara manual:

  1. Di bagian bilah ALAT PENGEMBANGAN, pilih bilah Ekstensi .
  2. Ekstensi inti ASP.NET akan muncul dalam daftar.
  3. Jika ekstensi tidak diinstal, pilih tombol Tambahkan .
  4. Pilih Ekstensi Inti ASP.NET dari daftar.
  5. Pilih Oke untuk menerima persyaratan hukum.
  6. Pilih OK pada bilah Tambahkan ekstensi .
  7. Pesan pop-up informasi menunjukkan kapan ekstensi berhasil diinstal.

Jika pengelogan stdout tidak diaktifkan, ikuti langkah-langkah berikut:

  1. Di portal Azure, pilih bilah Alat Tingkat Lanjut di area ALAT PENGEMBANGAN. Pilih tombol Buka→ . Konsol Kudu terbuka di tab atau jendela browser baru.
  2. Menggunakan bilah navigasi di bagian atas halaman, buka konsol Debug dan pilih CMD.
  3. Buka folder ke situs>jalur wwwroot dan gulir ke bawah untuk mengungkapkan file web.config di bagian bawah daftar.
  4. Klik ikon pensil di samping file web.config .
  5. Atur stdoutLogEnabled ke dan ubah jalur stdoutLogFile ke: \\?\%home%\LogFiles\stdout.true
  6. Pilih Simpan untuk menyimpan file web.config yang diperbarui.

Lanjutkan untuk mengaktifkan pembuatan log diagnostik:

  1. Di portal Azure, pilih bilah Log diagnostik.
  2. Pilih tombol Aktif untuk Pengelogan Aplikasi (Filesystem) dan Pesan kesalahan terperinci. Pilih tombol Simpan di bagian atas bilah.
  3. Untuk menyertakan pelacakan permintaan yang gagal, juga dikenal sebagai pengelogan Failed Request Event Buffering (FREB), pilih sakelar Aktif untuk Pelacakan permintaan gagal.
  4. Pilih bilah Aliran log, yang tercantum segera di bawah bilah Log diagnostik di portal.
  5. Buat permintaan ke aplikasi.
  6. Dalam data aliran log, penyebab kesalahan ditunjukkan.

Pastikan untuk menonaktifkan pengelogan stdout saat pemecahan masalah selesai.

Untuk melihat log pelacakan permintaan yang gagal (log FREB):

  1. Navigasi ke bilah Diagnosis dan selesaikan masalah di portal Azure.
  2. Pilih Log Pelacakan Permintaan Gagal dari area ALAT DUKUNGAN bar samping.

Lihat bagian Jejak permintaan yang gagal dari bagian Mengaktifkan pembuatan log diagnostik untuk aplikasi web di topik Azure App Service dan FAQ performa aplikasi untuk Web Apps di Azure: Bagaimana cara mengaktifkan pelacakan permintaan yang gagal? untuk informasi selengkapnya.

Untuk informasi selengkapnya, lihat Mengaktifkan pembuatan log diagnostik untuk aplikasi web di Azure App Service.

Peringatan

Kegagalan untuk menonaktifkan log stdout dapat menyebabkan kegagalan aplikasi atau server. Tidak ada batasan ukuran file log atau jumlah file log yang dibuat.

Untuk pengelogan rutin di aplikasi ASP.NET Core, gunakan pustaka pengelogan yang membatasi ukuran file log dan memutar log. Untuk informasi selengkapnya, lihat penyedia pengelogan pihak ketiga.

Memecahkan masalah di IIS

Log Peristiwa Aplikasi (IIS)

Akses Log Peristiwa Aplikasi:

  1. Buka menu Mulai, cari Pemantau Peristiwa, dan pilih aplikasi Pemantau Peristiwa.
  2. Di Pemantau Peristiwa, buka simpul Log Windows.
  3. Pilih Aplikasi untuk membuka Log Peristiwa Aplikasi.
  4. Cari kesalahan yang terkait dengan aplikasi yang gagal. Kesalahan memiliki nilai Modul IIS AspNetCore atau Modul IIS Express AspNetCore di kolom Sumber .

Jalankan aplikasi pada prompt perintah

Banyak kesalahan startup tidak menghasilkan informasi yang berguna di Log Peristiwa Aplikasi. Anda dapat menemukan penyebab beberapa kesalahan dengan menjalankan aplikasi pada prompt perintah pada sistem hosting.

Penyebaran yang bergantung pada kerangka kerja

Jika aplikasi adalah penyebaran yang bergantung pada kerangka kerja:

  1. Pada prompt perintah, navigasikan ke folder penyebaran dan jalankan aplikasi dengan menjalankan rakitan aplikasi dengan dotnet.exe. Dalam perintah berikut, ganti nama rakitan aplikasi untuk <assembly_name>: dotnet .\<assembly_name>.dll.
  2. Output konsol dari aplikasi, menunjukkan kesalahan apa pun, ditulis ke jendela konsol.
  3. Jika kesalahan terjadi saat membuat permintaan ke aplikasi, buat permintaan ke host dan port tempat Kestrel mendengarkan. Menggunakan host dan posting default, buat permintaan ke http://localhost:5000/. Jika aplikasi merespons secara normal di Kestrel alamat titik akhir, masalahnya lebih mungkin terkait dengan konfigurasi hosting dan kemungkinan kecil dalam aplikasi.

Penyebaran mandiri

Jika aplikasi adalah penyebaran mandiri:

  1. Pada prompt perintah, navigasikan ke folder penyebaran dan jalankan aplikasi yang dapat dieksekusi. Dalam perintah berikut, ganti nama rakitan aplikasi untuk <assembly_name>: <assembly_name>.exe.
  2. Output konsol dari aplikasi, menunjukkan kesalahan apa pun, ditulis ke jendela konsol.
  3. Jika kesalahan terjadi saat membuat permintaan ke aplikasi, buat permintaan ke host dan port tempat Kestrel mendengarkan. Menggunakan host dan posting default, buat permintaan ke http://localhost:5000/. Jika aplikasi merespons secara normal di Kestrel alamat titik akhir, masalahnya lebih mungkin terkait dengan konfigurasi hosting dan kemungkinan kecil dalam aplikasi.

ASP.NET log stdout Modul Inti (IIS)

Untuk mengaktifkan dan melihat log stdout:

  1. Navigasikan ke folder penyebaran situs pada sistem hosting.
  2. Jika folder log tidak ada, buat folder . Untuk petunjuk tentang cara mengaktifkan MSBuild untuk membuat folder log dalam penyebaran secara otomatis, lihat topik Struktur direktori.
  3. Edit file web.config. Atur stdoutLogEnabled ke dan ubah jalur stdoutLogFile untuk menunjuk ke folder log (misalnya, .\logs\stdout).true stdout di jalur adalah awalan nama file log. Tanda waktu, id proses, dan ekstensi file ditambahkan secara otomatis saat log dibuat. Menggunakan stdout sebagai awalan nama file, file log umum diberi nama stdout_20180205184032_5412.log.
  4. Pastikan identitas kumpulan aplikasi Anda memiliki izin tulis ke folder log .
  5. Simpan file web.config yang diperbarui.
  6. Buat permintaan ke aplikasi.
  7. Navigasikan ke folder log . Temukan dan buka log stdout terbaru.
  8. Pelajari log untuk kesalahan.

Nonaktifkan pengelogan stdout saat pemecahan masalah selesai:

  1. Edit file web.config.
  2. Atur stdoutLogEnabled ke false.
  3. Simpan file.

Untuk informasi lebih lanjut, lihat ASP.NET Core Module (ANCM) untuk IIS.

Peringatan

Kegagalan untuk menonaktifkan log stdout dapat menyebabkan kegagalan aplikasi atau server. Tidak ada batasan ukuran file log atau jumlah file log yang dibuat.

Untuk pengelogan rutin di aplikasi ASP.NET Core, gunakan pustaka pengelogan yang membatasi ukuran file log dan memutar log. Untuk informasi selengkapnya, lihat penyedia pengelogan pihak ketiga.

log debug Modul Inti (IIS) ASP.NET

Tambahkan pengaturan handler berikut ke file web.config aplikasi untuk mengaktifkan log debug Modul Inti ASP.NET:

<aspNetCore ...>
  <handlerSettings>
    <handlerSetting name="debugLevel" value="file" />
    <handlerSetting name="debugFile" value="c:\temp\ancm.log" />
  </handlerSettings>
</aspNetCore>

Konfirmasikan bahwa jalur yang ditentukan untuk log ada dan identitas kumpulan aplikasi memiliki izin tulis ke lokasi.

Untuk informasi selengkapnya, lihat Pembuatan log dan pengalihan dengan Modul ASP.NET Core.

Aktifkan Halaman Pengecualian Pengembang

Variabel ASPNETCORE_ENVIRONMENTlingkungan dapat ditambahkan ke web.config untuk menjalankan aplikasi di lingkungan Pengembangan. Selama lingkungan tidak ditimpa dalam startup aplikasi oleh UseEnvironment pada penyusun host, mengatur variabel lingkungan memungkinkan Halaman Pengecualian Pengembang muncul saat aplikasi dijalankan.

<aspNetCore processPath="dotnet"
      arguments=".\MyApp.dll"
      stdoutLogEnabled="false"
      stdoutLogFile=".\logs\stdout"
      hostingModel="InProcess">
  <environmentVariables>
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
  </environmentVariables>
</aspNetCore>

Mengatur variabel lingkungan untuk ASPNETCORE_ENVIRONMENT hanya disarankan untuk digunakan pada pementasan dan server pengujian yang tidak terekspos ke Internet. Hapus variabel lingkungan dari file web.config setelah pemecahan masalah. Untuk informasi tentang mengatur variabel lingkungan di web.config, lihat elemen turunan environmentVariables dari aspNetCore.

Mendapatkan data dari aplikasi

Jika aplikasi mampu menanggapi permintaan, dapatkan permintaan, koneksi, dan data tambahan dari aplikasi menggunakan middleware sebaris terminal. Untuk informasi selengkapnya dan kode sampel, lihat Memecahkan masalah dan men-debug proyek ASP.NET Core.

Aplikasi lambat atau menggantung (IIS)

Crash dump adalah rekam jepret memori sistem dan dapat membantu menentukan penyebab crash aplikasi, kegagalan startup, atau aplikasi lambat.

Aplikasi mengalami crash atau mengalami pengecualian

Dapatkan dan analisis cadangan dari Pelaporan Galat Windows (WER):

  1. Buat folder untuk menyimpan file crash dump di c:\dumps. Kumpulan aplikasi harus memiliki akses tulis ke folder.

  2. Jalankan skrip EnableDumps PowerShell:

    • Jika aplikasi menggunakan model hosting dalam proses, jalankan skrip untuk w3wp.exe:

      .\EnableDumps w3wp.exe c:\dumps
      
    • Jika aplikasi menggunakan model hosting di luar proses, jalankan skrip untuk dotnet.exe:

      .\EnableDumps dotnet.exe c:\dumps
      
  3. Jalankan aplikasi dalam kondisi yang menyebabkan crash terjadi.

  4. Setelah crash terjadi, jalankan skrip DisableDumps PowerShell:

    • Jika aplikasi menggunakan model hosting dalam proses, jalankan skrip untuk w3wp.exe:

      .\DisableDumps w3wp.exe
      
    • Jika aplikasi menggunakan model hosting di luar proses, jalankan skrip untuk dotnet.exe:

      .\DisableDumps dotnet.exe
      

Setelah aplikasi crash dan pengumpulan cadangan selesai, aplikasi diizinkan untuk berakhir secara normal. Skrip PowerShell mengonfigurasi WER untuk mengumpulkan hingga lima cadangan per aplikasi.

Peringatan

Crash dump mungkin memakan ruang disk dalam jumlah besar (masing-masing hingga beberapa gigabyte).

Aplikasi macet, gagal selama startup, atau berjalan secara normal

Saat aplikasi macet (berhenti merespons tetapi tidak crash), gagal selama startup, atau berjalan secara normal, lihat File Cadangan Mode Pengguna: Memilih Alat Terbaik untuk memilih alat yang sesuai untuk menghasilkan cadangan.

Menganalisis cadangan

Cadangan dapat dianalisis menggunakan beberapa pendekatan. Untuk informasi selengkapnya, lihat Menganalisis File Cadangan Mode Pengguna.

Menghapus cache paket

Aplikasi yang berfungsi mungkin gagal segera setelah meningkatkan .NET Core SDK pada komputer pengembangan atau mengubah versi paket dalam aplikasi. Dalam beberapa kasus, paket yang tidak melekat dapat merusak aplikasi saat melakukan peningkatan besar. Sebagian besar masalah ini dapat diperbaiki dengan mengikuti instruksi berikut:

  1. Hapus folder bin dan obj.

  2. Bersihkan cache paket dengan mengeksekusi lokal dotnet nuget semuanya --clear dari shell perintah.

    Menghapus cache paket juga dapat dicapai dengan alat nuget.exe dan menjalankan perintah nuget locals all -clear. nuget.exe bukan instalasi yang dibundel dengan sistem operasi desktop Windows dan harus diperoleh secara terpisah dari situs web NuGet.

  3. Pulihkan dan bangun ulang proyek.

  4. Hapus semua file di folder penyebaran di server sebelum menyebarkan ulang aplikasi.

Sumber Daya Tambahan:

Dokumentasi Azure

Dokumentasi Visual Studio

Dokumentasi Visual Studio Code

Artikel ini menyediakan informasi tentang kesalahan startup aplikasi umum dan instruksi tentang cara mendiagnosis kesalahan saat aplikasi disebarkan ke Azure App Service atau IIS:

Kesalahan pengaktifan aplikasi
Menjelaskan skenario kode status HTTP startup umum.

Memecahkan masalah di Azure App Service
Menyediakan saran pemecahan masalah untuk aplikasi yang disebarkan ke Azure App Service.

Memecahkan masalah di IIS
Menyediakan saran pemecahan masalah untuk aplikasi yang disebarkan ke IIS atau berjalan di IIS Express secara lokal. Panduan ini berlaku untuk penyebaran desktop Windows Server dan Windows.

Menghapus cache paket
Menjelaskan apa yang harus dilakukan saat paket yang tidak melekat merusak aplikasi saat melakukan peningkatan besar atau mengubah versi paket.

Sumber Daya Tambahan:
Mencantumkan topik pemecahan masalah tambahan.

Kesalahan pengaktifan aplikasi

Di Visual Studio, proyek ASP.NET Core default ke hosting IIS Express selama penelusuran kesalahan. 502.5 - Kegagalan Proses atau 500.30 - Kegagalan Mulai yang terjadi saat penelusuran kesalahan secara lokal dapat didiagnosis menggunakan saran dalam topik ini.

403.14 Terlarang

Aplikasi gagal dimulai. Kesalahan berikut dicatat:

The Web server is configured to not list the contents of this directory.

Kesalahan biasanya disebabkan oleh penyebaran yang rusak pada sistem hosting, yang mencakup salah satu skenario berikut:

  • Aplikasi ini disebarkan ke folder yang salah pada sistem hosting.
  • Proses penyebaran gagal memindahkan semua file dan folder aplikasi ke folder penyebaran pada sistem hosting.
  • File web.config hilang dari penyebaran, atau konten file web.config salah format.

Lakukan langkah-langkah berikut:

  1. Hapus semua file dan folder dari folder penyebaran pada sistem hosting.
  2. Sebarkan ulang konten folder publikasi aplikasi ke sistem hosting menggunakan metode penyebaran normal Anda, seperti Visual Studio, PowerShell, atau penyebaran manual:
    • Konfirmasikan bahwa file web.config ada dalam penyebaran dan isinya sudah benar.
    • Saat menghosting di Azure App Service, konfirmasikan bahwa aplikasi disebarkan ke D:\home\site\wwwroot folder .
    • Saat aplikasi dihosting oleh IIS, konfirmasikan bahwa aplikasi disebarkan ke jalur Fisik IIS yang ditampilkan di Pengaturan Dasar Manajer IIS.
  3. Konfirmasikan bahwa semua file dan folder aplikasi disebarkan dengan membandingkan penyebaran pada sistem hosting dengan konten folder publikasi proyek.

Untuk informasi selengkapnya tentang tata letak aplikasi ASP.NET Core yang diterbitkan, lihat struktur direktori ASP.NET Core. Untuk informasi selengkapnya tentang file web.config , lihat ASP.NET Core Module (ANCM) untuk IIS.

500 Kesalahan Server Internal

Aplikasi dimulai, tetapi kesalahan mencegah server memenuhi permintaan.

Kesalahan ini terjadi dalam kode aplikasi selama startup atau saat membuat respons. Respons mungkin tidak berisi konten, atau respons mungkin muncul sebagai Kesalahan Server Internal 500 di browser. Log Peristiwa Aplikasi biasanya menyatakan bahwa aplikasi dimulai secara normal. Dari perspektif server, itu benar. Aplikasi memang dimulai, tetapi tidak dapat menghasilkan respons yang valid. Jalankan aplikasi pada prompt perintah di server atau aktifkan log stdout Modul Inti ASP.NET untuk memecahkan masalah.

Kesalahan ini juga dapat terjadi ketika Bundel Hosting .NET Core tidak diinstal atau rusak. Menginstal atau memperbaiki penginstalan .NET Core Hosting Bundle (untuk IIS) atau Visual Studio (untuk IIS Express) dapat memperbaiki masalah.

500.0 Kegagalan Beban Handler Dalam Proses

Proses pekerja gagal. Aplikasi tidak dimulai.

Modul ASP.NET Core gagal menemukan .NET Core CLR dan menemukan handler permintaan dalam proses (aspnetcorev2_inprocess.dll). Periksa apakah:

500.0 Kegagalan Beban Handler Di Luar Proses

Proses pekerja gagal. Aplikasi tidak dimulai.

Modul ASP.NET Core gagal menemukan handler permintaan hosting yang tidak diproses. Pastikan aspnetcorev2_outofprocess.dll ada di subfolder di samping aspnetcorev2.dll.

502.5 Process Failure

Proses pekerja gagal. Aplikasi tidak dimulai.

Modul ASP.NET Core mencoba memulai proses pekerja tetapi gagal dimulai. Penyebab kegagalan startup proses biasanya dapat ditentukan dari entri di Log Peristiwa Aplikasi dan log stdout Modul Inti ASP.NET.

Kondisi kegagalan umum adalah aplikasi salah dikonfigurasi karena menargetkan versi kerangka kerja bersama ASP.NET Core yang tidak ada. Periksa versi kerangka kerja bersama ASP.NET Core mana yang diinstal pada komputer target. Kerangka kerja bersama adalah sekumpulan rakitan (file.dll) yang diinstal pada komputer dan dirujuk oleh metapackage seperti Microsoft.AspNetCore.App. Referensi metapackage dapat menentukan versi minimum yang diperlukan. Untuk informasi selengkapnya, lihat Kerangka kerja bersama.

Halaman kesalahan Kegagalan Proses 502.5 dikembalikan ketika kesalahan konfigurasi hosting atau aplikasi menyebabkan proses pekerja gagal:

Gagal memulai aplikasi (ErrorCode '0x800700c1')

EventID: 1010
Source: IIS AspNetCore Module V2
Failed to start application '/LM/W3SVC/6/ROOT/', ErrorCode '0x800700c1'.

Aplikasi gagal dimulai karena rakitan aplikasi (.dll) tidak dapat dimuat.

Kesalahan ini terjadi ketika ada ketidakcocokan bitness antara aplikasi yang diterbitkan dan proses w3wp/iisexpress.

Konfirmasikan bahwa pengaturan 32-bit kumpulan aplikasi sudah benar:

  1. Pilih kumpulan aplikasi di Kumpulan Aplikasi Manajer IIS.
  2. Pilih Pengaturan Tingkat Lanjut di bawah Edit Kumpulan Aplikasi di panel Tindakan.
  3. Atur Aktifkan Aplikasi 32-Bit:
    • Jika menyebarkan aplikasi 32-bit (x86), atur nilai ke True.
    • Jika menyebarkan aplikasi 64-bit (x64), atur nilai ke False.

Konfirmasikan bahwa tidak ada konflik antara <Platform> properti MSBuild dalam file proyek dan bitness aplikasi yang diterbitkan.

Reset koneksi

Jika terjadi kesalahan setelah header dikirim, sudah terlambat bagi server untuk mengirim Kesalahan Server Internal 500 saat terjadi kesalahan. Ini sering terjadi ketika kesalahan terjadi selama serialisasi objek kompleks untuk respons. Jenis kesalahan ini muncul sebagai kesalahan pengaturan ulang koneksi pada klien. Pengelogan aplikasi dapat membantu memecahkan masalah jenis kesalahan ini.

Batas startup default

Modul ASP.NET Core dikonfigurasi dengan startupTimeLimit default 120 detik. Saat dibiarkan pada nilai default, aplikasi mungkin memerlukan waktu hingga dua menit untuk memulai sebelum modul mencatat kegagalan proses. Untuk informasi tentang mengonfigurasi modul, lihat Atribut elemen aspNetCore.

Memecahkan masalah di Azure App Service

Penting

ASP.NET Rilis pratinjau Core dengan Azure App Service

ASP.NET Rilis pratinjau Core tidak disebarkan ke Azure App Service secara default. Untuk menghosting aplikasi yang menggunakan rilis pratinjau ASP.NET Core, lihat Menyebarkan rilis pratinjau ASP.NET Core ke Azure App Service.

Log Peristiwa Aplikasi (Azure App Service)

Untuk mengakses Log Peristiwa Aplikasi, gunakan bilah Diagnosis dan selesaikan masalah di portal Azure:

  1. Di portal Azure, buka aplikasi di App Services.
  2. Pilih Diagnosis dan selesaikan masalah.
  3. Pilih judul Alat Diagnostik.
  4. Di bawah Alat Dukungan, pilih tombol Peristiwa Aplikasi.
  5. Periksa kesalahan terbaru yang disediakan oleh entri IIS AspNetCoreModule atau IIS AspNetCoreModule V2 di kolom Sumber .

Alternatif untuk menggunakan bilah Diagnosis dan selesaikan masalah adalah memeriksa file Log Peristiwa Aplikasi secara langsung menggunakan Kudu:

  1. Buka Alat Tingkat Lanjut di area Alat Pengembangan. Pilih tombol Buka→ . Konsol Kudu terbuka di tab atau jendela browser baru.
  2. Menggunakan bilah navigasi di bagian atas halaman, buka konsol Debug dan pilih CMD.
  3. Pilih folder LogFiles.
  4. Pilih ikon pensil di eventlog.xml samping file.
  5. Periksa log. Gulir ke bagian bawah log untuk melihat peristiwa terbaru.

Menjalankan aplikasi di konsol Kudu

Banyak kesalahan startup tidak menghasilkan informasi yang berguna di Log Peristiwa Aplikasi. Anda dapat menjalankan aplikasi di Konsol Eksekusi Jarak Jauh Kudu untuk menemukan kesalahan:

  1. Buka Alat Tingkat Lanjut di area Alat Pengembangan. Pilih tombol Buka→ . Konsol Kudu terbuka di tab atau jendela browser baru.
  2. Menggunakan bilah navigasi di bagian atas halaman, buka konsol Debug dan pilih CMD.

Menguji aplikasi 32-bit (x86)

Rilis saat ini

  1. cd d:\home\site\wwwroot
  2. Jalankan aplikasi:
    • Jika aplikasi adalah penyebaran yang bergantung pada kerangka kerja:

      dotnet .\{ASSEMBLY NAME}.dll
      
    • Jika aplikasi adalah penyebaran mandiri:

      {ASSEMBLY NAME}.exe
      

Output konsol dari aplikasi yang menampilkan kesalahan disalurkan ke konsol Kudu.

Penyebaran yang bergantung pada kerangka kerja yang berjalan pada rilis pratinjau

Memerlukan penginstalan ekstensi situs Runtime ASP.NET Core {VERSION} (x86).

  1. cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x32 ({X.Y} adalah versi runtime)
  2. Jalankan aplikasi: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll

Output konsol dari aplikasi yang menampilkan kesalahan disalurkan ke konsol Kudu.

Menguji aplikasi 64-bit (x64)

Rilis saat ini

  • Jika aplikasi adalah penyebaran dependen kerangka kerja 64-bit (x64):
    1. cd D:\Program Files\dotnet
    2. Jalankan aplikasi: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll
  • Jika aplikasi adalah penyebaran mandiri:
    1. cd D:\home\site\wwwroot
    2. Jalankan aplikasi: {ASSEMBLY NAME}.exe

Output konsol dari aplikasi yang menampilkan kesalahan disalurkan ke konsol Kudu.

Penyebaran yang bergantung pada kerangka kerja yang berjalan pada rilis pratinjau

Memerlukan penginstalan ekstensi situs Runtime ASP.NET Core {VERSION} (x64).

  1. cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64 ({X.Y} adalah versi runtime)
  2. Jalankan aplikasi: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll

Output konsol dari aplikasi yang menampilkan kesalahan disalurkan ke konsol Kudu.

ASP.NET log stdout Modul Inti (Azure App Service)

Log stdout Modul Inti ASP.NET sering merekam pesan kesalahan yang berguna yang tidak ditemukan di Log Peristiwa Aplikasi. Untuk mengaktifkan dan melihat log stdout:

  1. Navigasi ke bilah Diagnosis dan selesaikan masalah di portal Azure.
  2. Di bawah PILIH KATEGORI MASALAH, pilih tombol Web App Down.
  3. Di bawah Solusi>yang Disarankan Aktifkan Pengalihan Log Stdout, pilih tombol untuk Membuka Konsol Kudu untuk mengedit Web.Config.
  4. Di Konsol Diagnostik Kudu, buka folder ke situs>jalur wwwroot. Gulir ke bawah untuk mengungkapkan file web.config di bagian bawah daftar.
  5. Klik ikon pensil di samping file web.config .
  6. Atur stdoutLogEnabled ke dan ubah jalur stdoutLogFile ke: \\?\%home%\LogFiles\stdout.true
  7. Pilih Simpan untuk menyimpan file web.config yang diperbarui.
  8. Buat permintaan ke aplikasi.
  9. Kembali ke portal Microsoft Azure. Pilih bilah Alat Tingkat Lanjut di area ALAT PENGEMBANGAN. Pilih tombol Buka→ . Konsol Kudu terbuka di tab atau jendela browser baru.
  10. Menggunakan bilah navigasi di bagian atas halaman, buka konsol Debug dan pilih CMD.
  11. Pilih folder LogFiles.
  12. Periksa kolom Diubah dan pilih ikon pensil untuk mengedit log stdout dengan tanggal modifikasi terbaru.
  13. Ketika file log terbuka, kesalahan ditampilkan.

Nonaktifkan pengelogan stdout saat pemecahan masalah selesai:

  1. Di Konsol Diagnostik Kudu, kembali ke situs>jalur wwwroot untuk mengungkapkan file web.config. Buka file web.config lagi dengan memilih ikon pensil.
  2. Atur stdoutLogEnabled ke false.
  3. Pilih Simpan untuk menyimpan file.

Untuk informasi lebih lanjut, lihat ASP.NET Core Module (ANCM) untuk IIS.

Peringatan

Kegagalan untuk menonaktifkan log stdout dapat menyebabkan kegagalan aplikasi atau server. Tidak ada batasan ukuran file log atau jumlah file log yang dibuat. Hanya gunakan pengelogan stdout untuk memecahkan masalah pengaktifan aplikasi.

Untuk pengelogan umum di aplikasi ASP.NET Core setelah startup, gunakan pustaka pengelogan yang membatasi ukuran file log dan memutar log. Untuk informasi selengkapnya, lihat penyedia pengelogan pihak ketiga.

log debug Modul Inti ASP.NET (Azure App Service)

Log debug Modul inti ASP.NET menyediakan pengelogan tambahan yang lebih mendalam dari Modul inti ASP.NET. Untuk mengaktifkan dan melihat log stdout:

  1. Untuk mengaktifkan log diagnostik yang ditingkatkan, lakukan salah satu hal berikut:
    • Ikuti instruksi dalam Log diagnostik yang ditingkatkan untuk mengonfigurasi aplikasi untuk pengelogan diagnostik yang ditingkatkan. Sebarkan ulang aplikasi.
    • Tambahkan yang <handlerSettings> ditampilkan di Log diagnostik yang ditingkatkan ke file web.config aplikasi langsung menggunakan konsol Kudu:
      1. Buka Alat Tingkat Lanjut di area Alat Pengembangan. Pilih tombol Buka→ . Konsol Kudu terbuka di tab atau jendela browser baru.
      2. Menggunakan bilah navigasi di bagian atas halaman, buka konsol Debug dan pilih CMD.
      3. Buka folder ke situs>jalur wwwroot. Edit file web.config dengan memilih tombol pensil. Tambahkan bagian seperti yang <handlerSettings> ditunjukkan dalam Log diagnostik yang disempurnakan. Pilih tombol Simpan.
  2. Buka Alat Tingkat Lanjut di area Alat Pengembangan. Pilih tombol Buka→ . Konsol Kudu terbuka di tab atau jendela browser baru.
  3. Menggunakan bilah navigasi di bagian atas halaman, buka konsol Debug dan pilih CMD.
  4. Buka folder ke situs>jalur wwwroot. Jika Anda tidak menyediakan jalur untuk file aspnetcore-debug.log , file akan muncul dalam daftar. Jika Anda menyediakan jalur, navigasikan ke lokasi file log.
  5. Buka file log dengan tombol pensil di samping nama file.

Nonaktifkan pengelogan debug saat pemecahan masalah selesai:

Untuk menonaktifkan log debug yang ditingkatkan, lakukan salah satu hal berikut:

  • <handlerSettings> Hapus dari file web.config secara lokal dan sebarkan ulang aplikasi.
  • Gunakan konsol Kudu untuk mengedit file web.config dan menghapus bagian .<handlerSettings> Simpan file.

Untuk informasi selengkapnya, lihat Pembuatan log dan pengalihan dengan Modul ASP.NET Core.

Peringatan

Kegagalan untuk menonaktifkan log debug dapat menyebabkan kegagalan aplikasi atau server. Tidak ada batasan ukuran file log. Hanya gunakan pengelogan debug untuk memecahkan masalah pengaktifan aplikasi.

Untuk pengelogan umum di aplikasi ASP.NET Core setelah startup, gunakan pustaka pengelogan yang membatasi ukuran file log dan memutar log. Untuk informasi selengkapnya, lihat penyedia pengelogan pihak ketiga.

Aplikasi lambat atau menggantung (Azure App Service)

Saat aplikasi merespons secara perlahan atau macet pada permintaan, lihat artikel berikut ini:

Bilah pemantauan

Bilah pemantauan memberikan pengalaman pemecahan masalah alternatif untuk metode yang dijelaskan sebelumnya dalam topik. Bilah ini dapat digunakan untuk mendiagnosis kesalahan seri 500.

Konfirmasikan bahwa Ekstensi Inti ASP.NET diinstal. Jika ekstensi tidak diinstal, instal secara manual:

  1. Di bagian bilah ALAT PENGEMBANGAN, pilih bilah Ekstensi .
  2. Ekstensi inti ASP.NET akan muncul dalam daftar.
  3. Jika ekstensi tidak diinstal, pilih tombol Tambahkan .
  4. Pilih Ekstensi Inti ASP.NET dari daftar.
  5. Pilih Oke untuk menerima persyaratan hukum.
  6. Pilih OK pada bilah Tambahkan ekstensi .
  7. Pesan pop-up informasi menunjukkan kapan ekstensi berhasil diinstal.

Jika pengelogan stdout tidak diaktifkan, ikuti langkah-langkah berikut:

  1. Di portal Azure, pilih bilah Alat Tingkat Lanjut di area ALAT PENGEMBANGAN. Pilih tombol Buka→ . Konsol Kudu terbuka di tab atau jendela browser baru.
  2. Menggunakan bilah navigasi di bagian atas halaman, buka konsol Debug dan pilih CMD.
  3. Buka folder ke situs>jalur wwwroot dan gulir ke bawah untuk mengungkapkan file web.config di bagian bawah daftar.
  4. Klik ikon pensil di samping file web.config .
  5. Atur stdoutLogEnabled ke dan ubah jalur stdoutLogFile ke: \\?\%home%\LogFiles\stdout.true
  6. Pilih Simpan untuk menyimpan file web.config yang diperbarui.

Lanjutkan untuk mengaktifkan pembuatan log diagnostik:

  1. Di portal Azure, pilih bilah Log diagnostik.
  2. Pilih tombol Aktif untuk Pengelogan Aplikasi (Filesystem) dan Pesan kesalahan terperinci. Pilih tombol Simpan di bagian atas bilah.
  3. Untuk menyertakan pelacakan permintaan yang gagal, juga dikenal sebagai pengelogan Failed Request Event Buffering (FREB), pilih sakelar Aktif untuk Pelacakan permintaan gagal.
  4. Pilih bilah Aliran log, yang tercantum segera di bawah bilah Log diagnostik di portal.
  5. Buat permintaan ke aplikasi.
  6. Dalam data aliran log, penyebab kesalahan ditunjukkan.

Pastikan untuk menonaktifkan pengelogan stdout saat pemecahan masalah selesai.

Untuk melihat log pelacakan permintaan yang gagal (log FREB):

  1. Navigasi ke bilah Diagnosis dan selesaikan masalah di portal Azure.
  2. Pilih Log Pelacakan Permintaan Gagal dari area ALAT DUKUNGAN bar samping.

Lihat bagian Jejak permintaan yang gagal dari bagian Mengaktifkan pembuatan log diagnostik untuk aplikasi web di topik Azure App Service dan FAQ performa aplikasi untuk Web Apps di Azure: Bagaimana cara mengaktifkan pelacakan permintaan yang gagal? untuk informasi selengkapnya.

Untuk informasi selengkapnya, lihat Mengaktifkan pembuatan log diagnostik untuk aplikasi web di Azure App Service.

Peringatan

Kegagalan untuk menonaktifkan log stdout dapat menyebabkan kegagalan aplikasi atau server. Tidak ada batasan ukuran file log atau jumlah file log yang dibuat.

Untuk pengelogan rutin di aplikasi ASP.NET Core, gunakan pustaka pengelogan yang membatasi ukuran file log dan memutar log. Untuk informasi selengkapnya, lihat penyedia pengelogan pihak ketiga.

Memecahkan masalah di IIS

Log Peristiwa Aplikasi (IIS)

Akses Log Peristiwa Aplikasi:

  1. Buka menu Mulai, cari Pemantau Peristiwa, dan pilih aplikasi Pemantau Peristiwa.
  2. Di Pemantau Peristiwa, buka simpul Log Windows.
  3. Pilih Aplikasi untuk membuka Log Peristiwa Aplikasi.
  4. Cari kesalahan yang terkait dengan aplikasi yang gagal. Kesalahan memiliki nilai Modul IIS AspNetCore atau Modul IIS Express AspNetCore di kolom Sumber .

Jalankan aplikasi pada prompt perintah

Banyak kesalahan startup tidak menghasilkan informasi yang berguna di Log Peristiwa Aplikasi. Anda dapat menemukan penyebab beberapa kesalahan dengan menjalankan aplikasi pada prompt perintah pada sistem hosting.

Penyebaran yang bergantung pada kerangka kerja

Jika aplikasi adalah penyebaran yang bergantung pada kerangka kerja:

  1. Pada prompt perintah, navigasikan ke folder penyebaran dan jalankan aplikasi dengan menjalankan rakitan aplikasi dengan dotnet.exe. Dalam perintah berikut, ganti nama rakitan aplikasi untuk <assembly_name>: dotnet .\<assembly_name>.dll.
  2. Output konsol dari aplikasi, menunjukkan kesalahan apa pun, ditulis ke jendela konsol.
  3. Jika kesalahan terjadi saat membuat permintaan ke aplikasi, buat permintaan ke host dan port tempat Kestrel mendengarkan. Menggunakan host dan posting default, buat permintaan ke http://localhost:5000/. Jika aplikasi merespons secara normal di Kestrel alamat titik akhir, masalahnya lebih mungkin terkait dengan konfigurasi hosting dan kemungkinan kecil dalam aplikasi.

Penyebaran mandiri

Jika aplikasi adalah penyebaran mandiri:

  1. Pada prompt perintah, navigasikan ke folder penyebaran dan jalankan aplikasi yang dapat dieksekusi. Dalam perintah berikut, ganti nama rakitan aplikasi untuk <assembly_name>: <assembly_name>.exe.
  2. Output konsol dari aplikasi, menunjukkan kesalahan apa pun, ditulis ke jendela konsol.
  3. Jika kesalahan terjadi saat membuat permintaan ke aplikasi, buat permintaan ke host dan port tempat Kestrel mendengarkan. Menggunakan host dan posting default, buat permintaan ke http://localhost:5000/. Jika aplikasi merespons secara normal di Kestrel alamat titik akhir, masalahnya lebih mungkin terkait dengan konfigurasi hosting dan kemungkinan kecil dalam aplikasi.

ASP.NET log stdout Modul Inti (IIS)

Untuk mengaktifkan dan melihat log stdout:

  1. Navigasikan ke folder penyebaran situs pada sistem hosting.
  2. Jika folder log tidak ada, buat folder . Untuk petunjuk tentang cara mengaktifkan MSBuild untuk membuat folder log dalam penyebaran secara otomatis, lihat topik Struktur direktori.
  3. Edit file web.config. Atur stdoutLogEnabled ke dan ubah jalur stdoutLogFile untuk menunjuk ke folder log (misalnya, .\logs\stdout).true stdout di jalur adalah awalan nama file log. Tanda waktu, id proses, dan ekstensi file ditambahkan secara otomatis saat log dibuat. Menggunakan stdout sebagai awalan nama file, file log umum diberi nama stdout_20180205184032_5412.log.
  4. Pastikan identitas kumpulan aplikasi Anda memiliki izin tulis ke folder log .
  5. Simpan file web.config yang diperbarui.
  6. Buat permintaan ke aplikasi.
  7. Navigasikan ke folder log . Temukan dan buka log stdout terbaru.
  8. Pelajari log untuk kesalahan.

Nonaktifkan pengelogan stdout saat pemecahan masalah selesai:

  1. Edit file web.config.
  2. Atur stdoutLogEnabled ke false.
  3. Simpan file.

Untuk informasi lebih lanjut, lihat ASP.NET Core Module (ANCM) untuk IIS.

Peringatan

Kegagalan untuk menonaktifkan log stdout dapat menyebabkan kegagalan aplikasi atau server. Tidak ada batasan ukuran file log atau jumlah file log yang dibuat.

Untuk pengelogan rutin di aplikasi ASP.NET Core, gunakan pustaka pengelogan yang membatasi ukuran file log dan memutar log. Untuk informasi selengkapnya, lihat penyedia pengelogan pihak ketiga.

log debug Modul Inti (IIS) ASP.NET

Tambahkan pengaturan handler berikut ke file web.config aplikasi untuk mengaktifkan log debug Modul Inti ASP.NET:

<aspNetCore ...>
  <handlerSettings>
    <handlerSetting name="debugLevel" value="file" />
    <handlerSetting name="debugFile" value="c:\temp\ancm.log" />
  </handlerSettings>
</aspNetCore>

Konfirmasikan bahwa jalur yang ditentukan untuk log ada dan identitas kumpulan aplikasi memiliki izin tulis ke lokasi.

Untuk informasi selengkapnya, lihat Pembuatan log dan pengalihan dengan Modul ASP.NET Core.

Aktifkan Halaman Pengecualian Pengembang

Variabel ASPNETCORE_ENVIRONMENTlingkungan dapat ditambahkan ke web.config untuk menjalankan aplikasi di lingkungan Pengembangan. Selama lingkungan tidak ditimpa dalam startup aplikasi oleh UseEnvironment pada penyusun host, mengatur variabel lingkungan memungkinkan Halaman Pengecualian Pengembang muncul saat aplikasi dijalankan.

<aspNetCore processPath="dotnet"
      arguments=".\MyApp.dll"
      stdoutLogEnabled="false"
      stdoutLogFile=".\logs\stdout"
      hostingModel="InProcess">
  <environmentVariables>
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
  </environmentVariables>
</aspNetCore>

Mengatur variabel lingkungan untuk ASPNETCORE_ENVIRONMENT hanya disarankan untuk digunakan pada pementasan dan server pengujian yang tidak terekspos ke Internet. Hapus variabel lingkungan dari file web.config setelah pemecahan masalah. Untuk informasi tentang mengatur variabel lingkungan di web.config, lihat elemen turunan environmentVariables dari aspNetCore.

Mendapatkan data dari aplikasi

Jika aplikasi mampu menanggapi permintaan, dapatkan permintaan, koneksi, dan data tambahan dari aplikasi menggunakan middleware sebaris terminal. Untuk informasi selengkapnya dan kode sampel, lihat Memecahkan masalah dan men-debug proyek ASP.NET Core.

Aplikasi lambat atau menggantung (IIS)

Crash dump adalah rekam jepret memori sistem dan dapat membantu menentukan penyebab crash aplikasi, kegagalan startup, atau aplikasi lambat.

Aplikasi mengalami crash atau mengalami pengecualian

Dapatkan dan analisis cadangan dari Pelaporan Galat Windows (WER):

  1. Buat folder untuk menyimpan file crash dump di c:\dumps. Kumpulan aplikasi harus memiliki akses tulis ke folder.

  2. Jalankan skrip EnableDumps PowerShell:

    • Jika aplikasi menggunakan model hosting dalam proses, jalankan skrip untuk w3wp.exe:

      .\EnableDumps w3wp.exe c:\dumps
      
    • Jika aplikasi menggunakan model hosting di luar proses, jalankan skrip untuk dotnet.exe:

      .\EnableDumps dotnet.exe c:\dumps
      
  3. Jalankan aplikasi dalam kondisi yang menyebabkan crash terjadi.

  4. Setelah crash terjadi, jalankan skrip DisableDumps PowerShell:

    • Jika aplikasi menggunakan model hosting dalam proses, jalankan skrip untuk w3wp.exe:

      .\DisableDumps w3wp.exe
      
    • Jika aplikasi menggunakan model hosting di luar proses, jalankan skrip untuk dotnet.exe:

      .\DisableDumps dotnet.exe
      

Setelah aplikasi crash dan pengumpulan cadangan selesai, aplikasi diizinkan untuk berakhir secara normal. Skrip PowerShell mengonfigurasi WER untuk mengumpulkan hingga lima cadangan per aplikasi.

Peringatan

Crash dump mungkin memakan ruang disk dalam jumlah besar (masing-masing hingga beberapa gigabyte).

Aplikasi macet, gagal selama startup, atau berjalan secara normal

Saat aplikasi macet (berhenti merespons tetapi tidak crash), gagal selama startup, atau berjalan secara normal, lihat File Cadangan Mode Pengguna: Memilih Alat Terbaik untuk memilih alat yang sesuai untuk menghasilkan cadangan.

Menganalisis cadangan

Cadangan dapat dianalisis menggunakan beberapa pendekatan. Untuk informasi selengkapnya, lihat Menganalisis File Cadangan Mode Pengguna.

Menghapus cache paket

Aplikasi yang berfungsi mungkin gagal segera setelah meningkatkan .NET Core SDK pada komputer pengembangan atau mengubah versi paket dalam aplikasi. Dalam beberapa kasus, paket yang tidak melekat dapat merusak aplikasi saat melakukan peningkatan besar. Sebagian besar masalah ini dapat diperbaiki dengan mengikuti instruksi berikut:

  1. Hapus folder bin dan obj.

  2. Bersihkan cache paket dengan mengeksekusi lokal dotnet nuget semuanya --clear dari shell perintah.

    Menghapus cache paket juga dapat dicapai dengan alat nuget.exe dan menjalankan perintah nuget locals all -clear. nuget.exe bukan instalasi yang dibundel dengan sistem operasi desktop Windows dan harus diperoleh secara terpisah dari situs web NuGet.

  3. Pulihkan dan bangun ulang proyek.

  4. Hapus semua file di folder penyebaran di server sebelum menyebarkan ulang aplikasi.

Sumber Daya Tambahan:

Dokumentasi Azure

Dokumentasi Visual Studio

Dokumentasi Visual Studio Code

Artikel ini menyediakan informasi tentang kesalahan startup aplikasi umum dan instruksi tentang cara mendiagnosis kesalahan saat aplikasi disebarkan ke Azure App Service atau IIS:

Kesalahan pengaktifan aplikasi
Menjelaskan skenario kode status HTTP startup umum.

Memecahkan masalah di Azure App Service
Menyediakan saran pemecahan masalah untuk aplikasi yang disebarkan ke Azure App Service.

Memecahkan masalah di IIS
Menyediakan saran pemecahan masalah untuk aplikasi yang disebarkan ke IIS atau berjalan di IIS Express secara lokal. Panduan ini berlaku untuk penyebaran desktop Windows Server dan Windows.

Menghapus cache paket
Menjelaskan apa yang harus dilakukan saat paket yang tidak melekat merusak aplikasi saat melakukan peningkatan besar atau mengubah versi paket.

Sumber Daya Tambahan:
Mencantumkan topik pemecahan masalah tambahan.

Kesalahan pengaktifan aplikasi

Di Visual Studio, proyek ASP.NET Core default ke hosting IIS Express selama penelusuran kesalahan. Kegagalan Proses 502.5 yang terjadi saat penelusuran kesalahan secara lokal dapat didiagnosis menggunakan saran dalam topik ini.

403.14 Terlarang

Aplikasi gagal dimulai. Kesalahan berikut dicatat:

The Web server is configured to not list the contents of this directory.

Kesalahan biasanya disebabkan oleh penyebaran yang rusak pada sistem hosting, yang mencakup salah satu skenario berikut:

  • Aplikasi ini disebarkan ke folder yang salah pada sistem hosting.
  • Proses penyebaran gagal memindahkan semua file dan folder aplikasi ke folder penyebaran pada sistem hosting.
  • File web.config hilang dari penyebaran, atau konten file web.config salah format.

Lakukan langkah-langkah berikut:

  1. Hapus semua file dan folder dari folder penyebaran pada sistem hosting.
  2. Sebarkan ulang konten folder publikasi aplikasi ke sistem hosting menggunakan metode penyebaran normal Anda, seperti Visual Studio, PowerShell, atau penyebaran manual:
    • Konfirmasikan bahwa file web.config ada dalam penyebaran dan isinya sudah benar.
    • Saat menghosting di Azure App Service, konfirmasikan bahwa aplikasi disebarkan ke D:\home\site\wwwroot folder .
    • Saat aplikasi dihosting oleh IIS, konfirmasikan bahwa aplikasi disebarkan ke jalur Fisik IIS yang ditampilkan di Pengaturan Dasar Manajer IIS.
  3. Konfirmasikan bahwa semua file dan folder aplikasi disebarkan dengan membandingkan penyebaran pada sistem hosting dengan konten folder publikasi proyek.

Untuk informasi selengkapnya tentang tata letak aplikasi ASP.NET Core yang diterbitkan, lihat struktur direktori ASP.NET Core. Untuk informasi selengkapnya tentang file web.config , lihat ASP.NET Core Module (ANCM) untuk IIS.

500 Kesalahan Server Internal

Aplikasi dimulai, tetapi kesalahan mencegah server memenuhi permintaan.

Kesalahan ini terjadi dalam kode aplikasi selama startup atau saat membuat respons. Respons mungkin tidak berisi konten, atau respons mungkin muncul sebagai Kesalahan Server Internal 500 di browser. Log Peristiwa Aplikasi biasanya menyatakan bahwa aplikasi dimulai secara normal. Dari perspektif server, itu benar. Aplikasi memang dimulai, tetapi tidak dapat menghasilkan respons yang valid. Jalankan aplikasi pada prompt perintah di server atau aktifkan log stdout Modul Inti ASP.NET untuk memecahkan masalah.

Kesalahan ini juga dapat terjadi ketika Bundel Hosting .NET Core tidak diinstal atau rusak. Menginstal atau memperbaiki penginstalan .NET Core Hosting Bundle (untuk IIS) atau Visual Studio (untuk IIS Express) dapat memperbaiki masalah.

502.5 Process Failure

Proses pekerja gagal. Aplikasi tidak dimulai.

Modul ASP.NET Core mencoba memulai proses pekerja tetapi gagal dimulai. Penyebab kegagalan startup proses biasanya dapat ditentukan dari entri di Log Peristiwa Aplikasi dan log stdout Modul Inti ASP.NET.

Kondisi kegagalan umum adalah aplikasi salah dikonfigurasi karena menargetkan versi kerangka kerja bersama ASP.NET Core yang tidak ada. Periksa versi kerangka kerja bersama ASP.NET Core mana yang diinstal pada komputer target. Kerangka kerja bersama adalah sekumpulan rakitan (file.dll) yang diinstal pada komputer dan dirujuk oleh metapackage seperti Microsoft.AspNetCore.App. Referensi metapackage dapat menentukan versi minimum yang diperlukan. Untuk informasi selengkapnya, lihat Kerangka kerja bersama.

Halaman kesalahan Kegagalan Proses 502.5 dikembalikan ketika kesalahan konfigurasi hosting atau aplikasi menyebabkan proses pekerja gagal:

Gagal memulai aplikasi (ErrorCode '0x800700c1')

EventID: 1010
Source: IIS AspNetCore Module V2
Failed to start application '/LM/W3SVC/6/ROOT/', ErrorCode '0x800700c1'.

Aplikasi gagal dimulai karena rakitan aplikasi (.dll) tidak dapat dimuat.

Kesalahan ini terjadi ketika ada ketidakcocokan bitness antara aplikasi yang diterbitkan dan proses w3wp/iisexpress.

Konfirmasikan bahwa pengaturan 32-bit kumpulan aplikasi sudah benar:

  1. Pilih kumpulan aplikasi di Kumpulan Aplikasi Manajer IIS.
  2. Pilih Pengaturan Tingkat Lanjut di bawah Edit Kumpulan Aplikasi di panel Tindakan.
  3. Atur Aktifkan Aplikasi 32-Bit:
    • Jika menyebarkan aplikasi 32-bit (x86), atur nilai ke True.
    • Jika menyebarkan aplikasi 64-bit (x64), atur nilai ke False.

Konfirmasikan bahwa tidak ada konflik antara <Platform> properti MSBuild dalam file proyek dan bitness aplikasi yang diterbitkan.

Reset koneksi

Jika terjadi kesalahan setelah header dikirim, sudah terlambat bagi server untuk mengirim Kesalahan Server Internal 500 saat terjadi kesalahan. Ini sering terjadi ketika kesalahan terjadi selama serialisasi objek kompleks untuk respons. Jenis kesalahan ini muncul sebagai kesalahan pengaturan ulang koneksi pada klien. Pengelogan aplikasi dapat membantu memecahkan masalah jenis kesalahan ini.

Batas startup default

Modul ASP.NET Core dikonfigurasi dengan startupTimeLimit default 120 detik. Saat dibiarkan pada nilai default, aplikasi mungkin memerlukan waktu hingga dua menit untuk memulai sebelum modul mencatat kegagalan proses. Untuk informasi tentang mengonfigurasi modul, lihat Atribut elemen aspNetCore.

Memecahkan masalah di Azure App Service

Penting

ASP.NET Rilis pratinjau Core dengan Azure App Service

ASP.NET Rilis pratinjau Core tidak disebarkan ke Azure App Service secara default. Untuk menghosting aplikasi yang menggunakan rilis pratinjau ASP.NET Core, lihat Menyebarkan rilis pratinjau ASP.NET Core ke Azure App Service.

Log Peristiwa Aplikasi (Azure App Service)

Untuk mengakses Log Peristiwa Aplikasi, gunakan bilah Diagnosis dan selesaikan masalah di portal Azure:

  1. Di portal Azure, buka aplikasi di App Services.
  2. Pilih Diagnosis dan selesaikan masalah.
  3. Pilih judul Alat Diagnostik.
  4. Di bawah Alat Dukungan, pilih tombol Peristiwa Aplikasi.
  5. Periksa kesalahan terbaru yang disediakan oleh entri IIS AspNetCoreModule atau IIS AspNetCoreModule V2 di kolom Sumber .

Alternatif untuk menggunakan bilah Diagnosis dan selesaikan masalah adalah memeriksa file Log Peristiwa Aplikasi secara langsung menggunakan Kudu:

  1. Buka Alat Tingkat Lanjut di area Alat Pengembangan. Pilih tombol Buka→ . Konsol Kudu terbuka di tab atau jendela browser baru.
  2. Menggunakan bilah navigasi di bagian atas halaman, buka konsol Debug dan pilih CMD.
  3. Pilih folder LogFiles.
  4. Pilih ikon pensil di eventlog.xml samping file.
  5. Periksa log. Gulir ke bagian bawah log untuk melihat peristiwa terbaru.

Menjalankan aplikasi di konsol Kudu

Banyak kesalahan startup tidak menghasilkan informasi yang berguna di Log Peristiwa Aplikasi. Anda dapat menjalankan aplikasi di Konsol Eksekusi Jarak Jauh Kudu untuk menemukan kesalahan:

  1. Buka Alat Tingkat Lanjut di area Alat Pengembangan. Pilih tombol Buka→ . Konsol Kudu terbuka di tab atau jendela browser baru.
  2. Menggunakan bilah navigasi di bagian atas halaman, buka konsol Debug dan pilih CMD.

Menguji aplikasi 32-bit (x86)

Rilis saat ini

  1. cd d:\home\site\wwwroot
  2. Jalankan aplikasi:
    • Jika aplikasi adalah penyebaran yang bergantung pada kerangka kerja:

      dotnet .\{ASSEMBLY NAME}.dll
      
    • Jika aplikasi adalah penyebaran mandiri:

      {ASSEMBLY NAME}.exe
      

Output konsol dari aplikasi yang menampilkan kesalahan disalurkan ke konsol Kudu.

Penyebaran yang bergantung pada kerangka kerja yang berjalan pada rilis pratinjau

Memerlukan penginstalan ekstensi situs Runtime ASP.NET Core {VERSION} (x86).

  1. cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x32 ({X.Y} adalah versi runtime)
  2. Jalankan aplikasi: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll

Output konsol dari aplikasi yang menampilkan kesalahan disalurkan ke konsol Kudu.

Menguji aplikasi 64-bit (x64)

Rilis saat ini

  • Jika aplikasi adalah penyebaran dependen kerangka kerja 64-bit (x64):
    1. cd D:\Program Files\dotnet
    2. Jalankan aplikasi: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll
  • Jika aplikasi adalah penyebaran mandiri:
    1. cd D:\home\site\wwwroot
    2. Jalankan aplikasi: {ASSEMBLY NAME}.exe

Output konsol dari aplikasi yang menampilkan kesalahan disalurkan ke konsol Kudu.

Penyebaran yang bergantung pada kerangka kerja yang berjalan pada rilis pratinjau

Memerlukan penginstalan ekstensi situs Runtime ASP.NET Core {VERSION} (x64).

  1. cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64 ({X.Y} adalah versi runtime)
  2. Jalankan aplikasi: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll

Output konsol dari aplikasi yang menampilkan kesalahan disalurkan ke konsol Kudu.

ASP.NET log stdout Modul Inti (Azure App Service)

Log stdout Modul Inti ASP.NET sering merekam pesan kesalahan yang berguna yang tidak ditemukan di Log Peristiwa Aplikasi. Untuk mengaktifkan dan melihat log stdout:

  1. Navigasi ke bilah Diagnosis dan selesaikan masalah di portal Azure.
  2. Di bawah PILIH KATEGORI MASALAH, pilih tombol Web App Down.
  3. Di bawah Solusi>yang Disarankan Aktifkan Pengalihan Log Stdout, pilih tombol untuk Membuka Konsol Kudu untuk mengedit Web.Config.
  4. Di Konsol Diagnostik Kudu, buka folder ke situs>jalur wwwroot. Gulir ke bawah untuk mengungkapkan file web.config di bagian bawah daftar.
  5. Klik ikon pensil di samping file web.config .
  6. Atur stdoutLogEnabled ke dan ubah jalur stdoutLogFile ke: \\?\%home%\LogFiles\stdout.true
  7. Pilih Simpan untuk menyimpan file web.config yang diperbarui.
  8. Buat permintaan ke aplikasi.
  9. Kembali ke portal Microsoft Azure. Pilih bilah Alat Tingkat Lanjut di area ALAT PENGEMBANGAN. Pilih tombol Buka→ . Konsol Kudu terbuka di tab atau jendela browser baru.
  10. Menggunakan bilah navigasi di bagian atas halaman, buka konsol Debug dan pilih CMD.
  11. Pilih folder LogFiles.
  12. Periksa kolom Diubah dan pilih ikon pensil untuk mengedit log stdout dengan tanggal modifikasi terbaru.
  13. Ketika file log terbuka, kesalahan ditampilkan.

Nonaktifkan pengelogan stdout saat pemecahan masalah selesai:

  1. Di Konsol Diagnostik Kudu, kembali ke situs>jalur wwwroot untuk mengungkapkan file web.config. Buka file web.config lagi dengan memilih ikon pensil.
  2. Atur stdoutLogEnabled ke false.
  3. Pilih Simpan untuk menyimpan file.

Untuk informasi lebih lanjut, lihat ASP.NET Core Module (ANCM) untuk IIS.

Peringatan

Kegagalan untuk menonaktifkan log stdout dapat menyebabkan kegagalan aplikasi atau server. Tidak ada batasan ukuran file log atau jumlah file log yang dibuat. Hanya gunakan pengelogan stdout untuk memecahkan masalah pengaktifan aplikasi.

Untuk pengelogan umum di aplikasi ASP.NET Core setelah startup, gunakan pustaka pengelogan yang membatasi ukuran file log dan memutar log. Untuk informasi selengkapnya, lihat penyedia pengelogan pihak ketiga.

Aplikasi lambat atau menggantung (Azure App Service)

Saat aplikasi merespons secara perlahan atau macet pada permintaan, lihat artikel berikut ini:

Bilah pemantauan

Bilah pemantauan memberikan pengalaman pemecahan masalah alternatif untuk metode yang dijelaskan sebelumnya dalam topik. Bilah ini dapat digunakan untuk mendiagnosis kesalahan seri 500.

Konfirmasikan bahwa Ekstensi Inti ASP.NET diinstal. Jika ekstensi tidak diinstal, instal secara manual:

  1. Di bagian bilah ALAT PENGEMBANGAN, pilih bilah Ekstensi .
  2. Ekstensi inti ASP.NET akan muncul dalam daftar.
  3. Jika ekstensi tidak diinstal, pilih tombol Tambahkan .
  4. Pilih Ekstensi Inti ASP.NET dari daftar.
  5. Pilih Oke untuk menerima persyaratan hukum.
  6. Pilih OK pada bilah Tambahkan ekstensi .
  7. Pesan pop-up informasi menunjukkan kapan ekstensi berhasil diinstal.

Jika pengelogan stdout tidak diaktifkan, ikuti langkah-langkah berikut:

  1. Di portal Azure, pilih bilah Alat Tingkat Lanjut di area ALAT PENGEMBANGAN. Pilih tombol Buka→ . Konsol Kudu terbuka di tab atau jendela browser baru.
  2. Menggunakan bilah navigasi di bagian atas halaman, buka konsol Debug dan pilih CMD.
  3. Buka folder ke situs>jalur wwwroot dan gulir ke bawah untuk mengungkapkan file web.config di bagian bawah daftar.
  4. Klik ikon pensil di samping file web.config .
  5. Atur stdoutLogEnabled ke dan ubah jalur stdoutLogFile ke: \\?\%home%\LogFiles\stdout.true
  6. Pilih Simpan untuk menyimpan file web.config yang diperbarui.

Lanjutkan untuk mengaktifkan pembuatan log diagnostik:

  1. Di portal Azure, pilih bilah Log diagnostik.
  2. Pilih tombol Aktif untuk Pengelogan Aplikasi (Filesystem) dan Pesan kesalahan terperinci. Pilih tombol Simpan di bagian atas bilah.
  3. Untuk menyertakan pelacakan permintaan yang gagal, juga dikenal sebagai pengelogan Failed Request Event Buffering (FREB), pilih sakelar Aktif untuk Pelacakan permintaan gagal.
  4. Pilih bilah Aliran log, yang tercantum segera di bawah bilah Log diagnostik di portal.
  5. Buat permintaan ke aplikasi.
  6. Dalam data aliran log, penyebab kesalahan ditunjukkan.

Pastikan untuk menonaktifkan pengelogan stdout saat pemecahan masalah selesai.

Untuk melihat log pelacakan permintaan yang gagal (log FREB):

  1. Navigasi ke bilah Diagnosis dan selesaikan masalah di portal Azure.
  2. Pilih Log Pelacakan Permintaan Gagal dari area ALAT DUKUNGAN bar samping.

Lihat bagian Jejak permintaan yang gagal dari bagian Mengaktifkan pembuatan log diagnostik untuk aplikasi web di topik Azure App Service dan FAQ performa aplikasi untuk Web Apps di Azure: Bagaimana cara mengaktifkan pelacakan permintaan yang gagal? untuk informasi selengkapnya.

Untuk informasi selengkapnya, lihat Mengaktifkan pembuatan log diagnostik untuk aplikasi web di Azure App Service.

Peringatan

Kegagalan untuk menonaktifkan log stdout dapat menyebabkan kegagalan aplikasi atau server. Tidak ada batasan ukuran file log atau jumlah file log yang dibuat.

Untuk pengelogan rutin di aplikasi ASP.NET Core, gunakan pustaka pengelogan yang membatasi ukuran file log dan memutar log. Untuk informasi selengkapnya, lihat penyedia pengelogan pihak ketiga.

Memecahkan masalah di IIS

Log Peristiwa Aplikasi (IIS)

Akses Log Peristiwa Aplikasi:

  1. Buka menu Mulai, cari Pemantau Peristiwa, dan pilih aplikasi Pemantau Peristiwa.
  2. Di Pemantau Peristiwa, buka simpul Log Windows.
  3. Pilih Aplikasi untuk membuka Log Peristiwa Aplikasi.
  4. Cari kesalahan yang terkait dengan aplikasi yang gagal. Kesalahan memiliki nilai Modul IIS AspNetCore atau Modul IIS Express AspNetCore di kolom Sumber .

Jalankan aplikasi pada prompt perintah

Banyak kesalahan startup tidak menghasilkan informasi yang berguna di Log Peristiwa Aplikasi. Anda dapat menemukan penyebab beberapa kesalahan dengan menjalankan aplikasi pada prompt perintah pada sistem hosting.

Penyebaran yang bergantung pada kerangka kerja

Jika aplikasi adalah penyebaran yang bergantung pada kerangka kerja:

  1. Pada prompt perintah, navigasikan ke folder penyebaran dan jalankan aplikasi dengan menjalankan rakitan aplikasi dengan dotnet.exe. Dalam perintah berikut, ganti nama rakitan aplikasi untuk <assembly_name>: dotnet .\<assembly_name>.dll.
  2. Output konsol dari aplikasi, menunjukkan kesalahan apa pun, ditulis ke jendela konsol.
  3. Jika kesalahan terjadi saat membuat permintaan ke aplikasi, buat permintaan ke host dan port tempat Kestrel mendengarkan. Menggunakan host dan posting default, buat permintaan ke http://localhost:5000/. Jika aplikasi merespons secara normal di Kestrel alamat titik akhir, masalahnya lebih mungkin terkait dengan konfigurasi hosting dan kemungkinan kecil dalam aplikasi.

Penyebaran mandiri

Jika aplikasi adalah penyebaran mandiri:

  1. Pada prompt perintah, navigasikan ke folder penyebaran dan jalankan aplikasi yang dapat dieksekusi. Dalam perintah berikut, ganti nama rakitan aplikasi untuk <assembly_name>: <assembly_name>.exe.
  2. Output konsol dari aplikasi, menunjukkan kesalahan apa pun, ditulis ke jendela konsol.
  3. Jika kesalahan terjadi saat membuat permintaan ke aplikasi, buat permintaan ke host dan port tempat Kestrel mendengarkan. Menggunakan host dan posting default, buat permintaan ke http://localhost:5000/. Jika aplikasi merespons secara normal di Kestrel alamat titik akhir, masalahnya lebih mungkin terkait dengan konfigurasi hosting dan kemungkinan kecil dalam aplikasi.

ASP.NET log stdout Modul Inti (IIS)

Untuk mengaktifkan dan melihat log stdout:

  1. Navigasikan ke folder penyebaran situs pada sistem hosting.
  2. Jika folder log tidak ada, buat folder . Untuk petunjuk tentang cara mengaktifkan MSBuild untuk membuat folder log dalam penyebaran secara otomatis, lihat topik Struktur direktori.
  3. Edit file web.config. Atur stdoutLogEnabled ke dan ubah jalur stdoutLogFile untuk menunjuk ke folder log (misalnya, .\logs\stdout).true stdout di jalur adalah awalan nama file log. Tanda waktu, id proses, dan ekstensi file ditambahkan secara otomatis saat log dibuat. Menggunakan stdout sebagai awalan nama file, file log umum diberi nama stdout_20180205184032_5412.log.
  4. Pastikan identitas kumpulan aplikasi Anda memiliki izin tulis ke folder log .
  5. Simpan file web.config yang diperbarui.
  6. Buat permintaan ke aplikasi.
  7. Navigasikan ke folder log . Temukan dan buka log stdout terbaru.
  8. Pelajari log untuk kesalahan.

Nonaktifkan pengelogan stdout saat pemecahan masalah selesai:

  1. Edit file web.config.
  2. Atur stdoutLogEnabled ke false.
  3. Simpan file.

Untuk informasi lebih lanjut, lihat ASP.NET Core Module (ANCM) untuk IIS.

Peringatan

Kegagalan untuk menonaktifkan log stdout dapat menyebabkan kegagalan aplikasi atau server. Tidak ada batasan ukuran file log atau jumlah file log yang dibuat.

Untuk pengelogan rutin di aplikasi ASP.NET Core, gunakan pustaka pengelogan yang membatasi ukuran file log dan memutar log. Untuk informasi selengkapnya, lihat penyedia pengelogan pihak ketiga.

Aktifkan Halaman Pengecualian Pengembang

Variabel ASPNETCORE_ENVIRONMENTlingkungan dapat ditambahkan ke web.config untuk menjalankan aplikasi di lingkungan Pengembangan. Selama lingkungan tidak ditimpa dalam startup aplikasi oleh UseEnvironment pada penyusun host, mengatur variabel lingkungan memungkinkan Halaman Pengecualian Pengembang muncul saat aplikasi dijalankan.

<aspNetCore processPath="dotnet"
      arguments=".\MyApp.dll"
      stdoutLogEnabled="false"
      stdoutLogFile=".\logs\stdout">
  <environmentVariables>
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
  </environmentVariables>
</aspNetCore>

Mengatur variabel lingkungan untuk ASPNETCORE_ENVIRONMENT hanya disarankan untuk digunakan pada pementasan dan server pengujian yang tidak terekspos ke Internet. Hapus variabel lingkungan dari file web.config setelah pemecahan masalah. Untuk informasi tentang mengatur variabel lingkungan di web.config, lihat elemen turunan environmentVariables dari aspNetCore.

Mendapatkan data dari aplikasi

Jika aplikasi mampu menanggapi permintaan, dapatkan permintaan, koneksi, dan data tambahan dari aplikasi menggunakan middleware sebaris terminal. Untuk informasi selengkapnya dan kode sampel, lihat Memecahkan masalah dan men-debug proyek ASP.NET Core.

Aplikasi lambat atau menggantung (IIS)

Crash dump adalah rekam jepret memori sistem dan dapat membantu menentukan penyebab crash aplikasi, kegagalan startup, atau aplikasi lambat.

Aplikasi mengalami crash atau mengalami pengecualian

Dapatkan dan analisis cadangan dari Pelaporan Galat Windows (WER):

  1. Buat folder untuk menyimpan file crash dump di c:\dumps. Kumpulan aplikasi harus memiliki akses tulis ke folder.

  2. Jalankan skrip EnableDumps PowerShell:

    • Jika aplikasi menggunakan model hosting dalam proses, jalankan skrip untuk w3wp.exe:

      .\EnableDumps w3wp.exe c:\dumps
      
    • Jika aplikasi menggunakan model hosting di luar proses, jalankan skrip untuk dotnet.exe:

      .\EnableDumps dotnet.exe c:\dumps
      
  3. Jalankan aplikasi dalam kondisi yang menyebabkan crash terjadi.

  4. Setelah crash terjadi, jalankan skrip DisableDumps PowerShell:

    • Jika aplikasi menggunakan model hosting dalam proses, jalankan skrip untuk w3wp.exe:

      .\DisableDumps w3wp.exe
      
    • Jika aplikasi menggunakan model hosting di luar proses, jalankan skrip untuk dotnet.exe:

      .\DisableDumps dotnet.exe
      

Setelah aplikasi crash dan pengumpulan cadangan selesai, aplikasi diizinkan untuk berakhir secara normal. Skrip PowerShell mengonfigurasi WER untuk mengumpulkan hingga lima cadangan per aplikasi.

Peringatan

Crash dump mungkin memakan ruang disk dalam jumlah besar (masing-masing hingga beberapa gigabyte).

Aplikasi macet, gagal selama startup, atau berjalan secara normal

Saat aplikasi macet (berhenti merespons tetapi tidak crash), gagal selama startup, atau berjalan secara normal, lihat File Cadangan Mode Pengguna: Memilih Alat Terbaik untuk memilih alat yang sesuai untuk menghasilkan cadangan.

Menganalisis cadangan

Cadangan dapat dianalisis menggunakan beberapa pendekatan. Untuk informasi selengkapnya, lihat Menganalisis File Cadangan Mode Pengguna.

Menghapus cache paket

Aplikasi yang berfungsi mungkin gagal segera setelah meningkatkan .NET Core SDK pada komputer pengembangan atau mengubah versi paket dalam aplikasi. Dalam beberapa kasus, paket yang tidak melekat dapat merusak aplikasi saat melakukan peningkatan besar. Sebagian besar masalah ini dapat diperbaiki dengan mengikuti instruksi berikut:

  1. Hapus folder bin dan obj.

  2. Bersihkan cache paket dengan mengeksekusi lokal dotnet nuget semuanya --clear dari shell perintah.

    Menghapus cache paket juga dapat dicapai dengan alat nuget.exe dan menjalankan perintah nuget locals all -clear. nuget.exe bukan instalasi yang dibundel dengan sistem operasi desktop Windows dan harus diperoleh secara terpisah dari situs web NuGet.

  3. Pulihkan dan bangun ulang proyek.

  4. Hapus semua file di folder penyebaran di server sebelum menyebarkan ulang aplikasi.

Sumber Daya Tambahan:

Dokumentasi Azure

Dokumentasi Visual Studio

Dokumentasi Visual Studio Code