Memecahkan masalah aplikasi di Azure App Service menggunakan Visual Studio
Catatan
Artikel ini untuk Visual Studio 2019. Untuk pemecahan masalah di Visual Studio 2022, lihat Remote Debug ASP.NET Core di Azure App Service.
Gambaran Umum
Tutorial ini menunjukkan cara menggunakan alat Visual Studio untuk membantu men-debug aplikasi di App Service, dengan menjalankan mode debug dari jarak jauh atau dengan melihat log aplikasi dan log server web.
Anda akan mempelajari:
- Fungsi manajemen aplikasi mana yang tersedia di Visual Studio.
- Cara menggunakan tampilan jarak jauh Visual Studio untuk membuat perubahan cepat di aplikasi jarak jauh.
- Cara menjalankan mode debug dari jarak jauh saat proyek berjalan di Azure, baik untuk aplikasi maupun untuk WebJob.
- Cara membuat log jejak aplikasi dan melihatnya saat aplikasi sedang membuatnya.
- Cara melihat log server web, termasuk pesan kesalahan terperinci dan penelusuran permintaan yang gagal.
- Cara mengirim log diagnostik ke akun Azure Storage dan melihatnya di sana.
Jika Anda memiliki Visual Studio Ultimate, Anda juga dapat menggunakan IntelliTrace untuk penelusuran kesalahan. IntelliTrace tidak dibahas dalam tutorial ini.
Prasyarat
Tutorial ini berfungsi dengan lingkungan pengembangan, proyek web, dan aplikasi App Service yang Anda siapkan di Membuat aplikasi ASP.NET di Azure App Service. Untuk bagian WebJobs, Anda akan memerlukan aplikasi yang Anda buat di Mulai Menggunakan Azure WebJobs SDK.
Contoh kode yang ditampilkan dalam tutorial ini adalah untuk aplikasi web C# MVC, tetapi prosedur pemecahan masalahnya sama untuk aplikasi Visual Basic dan Web Forms.
Tutorial ini mengasumsikan Anda menggunakan Visual Studio 2019.
Fitur log streaming hanya berfungsi untuk aplikasi yang menargetkan .NET Framework 4 atau yang lebih baru.
Konfigurasi dan manajemen aplikasi
Visual Studio menyediakan akses ke subset fungsi manajemen aplikasi dan pengaturan konfigurasi yang tersedia di portal Microsoft Azure. Di bagian ini, Anda akan melihat apa yang tersedia dengan menggunakan Server Explorer. Untuk melihat fitur integrasi Azure terbaru, cobalah Cloud Explorer juga. Anda dapat membuka kedua jendela dari menu Tampilan.
Jika Anda belum masuk ke Azure di Visual Studio, klik kanan Azure dan pilih Sambungkan ke Langganan Microsoft Azure di Server Explorer.
Alternatifnya adalah memasang sertifikat manajemen yang memungkinkan akses ke akun Anda. Jika Anda memilih untuk memasang sertifikat, klik kanan simpul Azure di Server Explorer, lalu pilih Kelola dan Filter Langganan di menu konteks. Dalam kotak dialog Kelola Langganan Microsoft Azure, klik tab Sertifikat, lalu klik Impor. Ikuti petunjuk untuk mengunduh lalu mengimpor file langganan (juga disebut file .publishsettings) untuk akun Azure Anda.
Catatan
Jika Anda mengunduh file langganan, simpan ke folder di luar direktori kode sumber Anda (misalnya, di folder Unduhan), lalu hapus setelah impor selesai. Pengguna jahat yang mendapatkan akses ke file langganan dapat mengedit, membuat, dan menghapus layanan Azure Anda.
Untuk informasi selengkapnya tentang menyambungkan ke sumber daya Azure dari Visual Studio, lihat Mengatur peran Azure menggunakan portal Microsoft Azure.
Di Server Explorer, perluas Azure dan perluas App Service.
Perluas grup sumber daya yang menyertakan aplikasi yang Anda buat di Membuat aplikasi ASP.NET di Azure App Service, lalu klik kanan simpul aplikasi dan klik Tampilkan Pengaturan.
Tab Azure Web App muncul, dan Anda bisa melihat ada tugas manajemen dan konfigurasi aplikasi yang tersedia di Visual Studio.
Dalam tutorial ini, Anda akan menggunakan drop-down pengelogan dan pelacakan. Anda juga akan menggunakan penelusuran kesalahan jarak jauh tetapi Anda akan menggunakan metode yang berbeda untuk mengaktifkannya.
Untuk informasi tentang kotak Pengaturan Aplikasi dan String Koneksi di jendela ini, lihat Azure App Service: Cara Kerja String Aplikasi dan String Koneksi.
Jika Anda ingin melakukan tugas manajemen aplikasi yang tidak bisa dilakukan di jendela ini, klik Buka di Portal Manajemen untuk membuka jendela browser ke portal Microsoft Azure.
Mengakses file aplikasi di Server Explorer
Anda biasanya menyebarkan proyek web dengan bendera customErrors
di file Web.config yang ditetapkan ke On
atau RemoteOnly
, yang berarti Anda tidak mendapatkan pesan kesalahan yang bermanfaat ketika terjadi kesalahan. Untuk banyak kesalahan, yang Anda dapatkan hanyalah halaman seperti salah satu yang berikut ini:
Kesalahan Server dalam Aplikasi '/':
Terjadi kesalahan:
Situs web tidak bisa menampilkan halaman
Sering kali cara termudah untuk menemukan penyebab kesalahan adalah dengan mengaktifkan pesan kesalahan terperinci, yang caranya dijelaskan oleh cuplikan layar pertama sebelumnya. Itu memerlukan perubahan dalam file Web.config yang diterapkan. Anda dapat mengedit file Web.config dalam proyek dan menyebarkan ulang proyek, atau membuat transformasi Web.config
dan menyebarkan build debug, tetapi ada cara yang lebih cepat: di Penjelajah Solusi, Anda dapat langsung melihat dan mengedit file di aplikasi jarak jauh dengan menggunakan fitur tampilan jarak jauh.
Di Server Explorer, perluas Azure, perluas App Service, perluas grup sumber daya tempat aplikasi Anda berada, lalu perluas simpul untuk aplikasi Anda.
Anda akan melihat simpul yang memberi Anda akses ke file konten dan file log aplikasi.
Perluas simpul File, dan klik dua kali file Web.config.
Visual Studio membuka file Web.config dari aplikasi jarak jauh dan menampilkan [Jarak Jauh] di samping nama file di bilah judul.
Tambahkan baris berikut ke elemen
system.web
:<customErrors mode="Off"></customErrors>
Refresh browser yang memperlihatkan pesan kesalahan yang tidak membantu, dan sekarang Anda mendapatkan pesan kesalahan terperinci, seperti contoh berikut:
(Kesalahan yang ditampilkan dibuat dengan menambahkan garis yang ditunjukkan dalam warna merah ke Views\Home\Index.cshtml.)
Mengedit file Web.config hanyalah salah satu contoh skenario di mana kemampuan untuk membaca dan mengedit file di aplikasi App Service Anda membuat pemecahan masalah menjadi lebih mudah.
Penelusuran kesalahan jarak jauh
Jika pesan kesalahan terperinci tidak memberikan informasi yang cukup, dan Anda tidak dapat membuat ulang kesalahan secara lokal, cara lain untuk memecahkan masalah adalah dengan menjalankan mode debug dari jarak jauh. Anda dapat mengatur titik henti, memanipulasi memori secara langsung, menelusuri kode, dan bahkan mengubah jalur kode.
Penelusuran kesalahan jarak jauh tidak berfungsi di Visual Studio edisi Ekspres.
Bagian ini memperlihatkan cara men-debug dari jarak jauh menggunakan proyek yang Anda buat di Membuat aplikasi ASP.NET di Azure App Service.
Buka proyek web yang Anda buat di Membuat aplikasi ASP.NET di Azure App Service.
Buka Pengontrol\HomeController.cs.
Hapus metode
About()
dan masukkan kode berikut di tempatnya.public ActionResult About() { string currentTime = DateTime.Now.ToLongTimeString(); ViewBag.Message = "The current time is " + currentTime; return View(); }
Atur titik henti pada baris
ViewBag.Message
.Di Penjelajah Solusi, klik kanan proyek dan pilih Terbitkan.
Di daftar drop-down Profil, pilih profil yang sama dengan yang Anda gunakan di Membuat aplikasi ASP.NET di Azure App Service. Kemudian, klik Pengaturan.
Dalam dialog Terbitkan, klik tab Pengaturan, lalu ubah Konfigurasi menjadi Debug, lalu klik Simpan.
Klik Publikasikan. Setelah penyebaran selesai dan browser Anda terbuka ke URL Azure aplikasi Anda, tutup browser.
Di Server Explorer, klik kanan aplikasi Anda, lalu klik Lampirkan Debugger.
Browser secara otomatis terbuka ke halaman beranda Anda yang berjalan di Azure. Anda mungkin harus menunggu 20 detik atau lebih saat Azure menyiapkan server untuk penelusuran kesalahan. Penundaan ini hanya terjadi saat pertama kali Anda menjalankan mode debug pada aplikasi dalam periode 48 jam. Ketika Anda memulai penelusuran kesalahan lagi dalam periode yang sama, tidak ada penundaan.
Catatan
Jika Anda mengalami masalah saat memulai debugger, cobalah melakukannya dengan menggunakan Cloud Explorer, alih-alih Server Explorer.
Klik Tentang di menu.
Visual Studio berhenti di titik henti, dan kode berjalan di Azure, bukan di komputer lokal Anda.
Arahkan mouse ke atas variabel
currentTime
untuk melihat nilai waktu.Waktu yang Anda lihat adalah waktu server Azure, yang mungkin berada di zona waktu yang berbeda dari komputer lokal Anda.
Masukkan nilai baru untuk variabel
currentTime
, seperti "Sekarang berjalan di Azure".Tekan F5 untuk melanjutkan.
Halaman Tentang yang berjalan di Azure menampilkan nilai baru yang Anda masukkan ke dalam variabel currentTime.
Penelusuran kesalahan Azure WebJobs jarak jauh
Bagian ini memperlihatkan cara men-debug dari jarak jauh menggunakan proyek dan aplikasi yang Anda buat di Mulai Menggunakan Azure WebJobs SDK.
Fitur yang ditampilkan di bagian ini hanya tersedia di Visual Studio 2013 dengan Pembaruan 4 atau yang lebih baru.
Penelusuran kesalahan jarak jauh hanya berfungsi dengan WebJobs berkelanjutan. WebJobs terjadwal dan sesuai permintaan tidak mendukung proses penelusuran kesalahan.
Buka proyek web yang Anda buat di Mulai Menggunakan Azure WebJobs SDK.
Dalam proyek ContosoAdsWebJob, buka Functions.cs.
Atur titik henti pada pernyataan pertama dalam metode
GenerateThumbnail
.Di Penjelajah Solusi, klik kanan proyek web (bukan proyek WebJob), dan klik Terbitkan.
Di daftar drop-down Profil, pilih profil yang sama dengan yang Anda gunakan di Mulai Menggunakan Azure WebJobs SDK.
Klik tab Pengaturan, dan ubah Konfigurasi menjadi Debug, lalu klik Terbitkan.
Visual Studio menyebarkan proyek web dan WebJob, dan browser Anda terbuka ke URL Azure aplikasi Anda.
Di Server Explorer, perluas Azure > App Service > grup sumber daya Anda > aplikasi Anda > WebJobs > Berkelanjutan, lalu klik kanan Pekerjaan WebContosoAds.
Klik Lampirkan Debugger.
Browser secara otomatis terbuka ke halaman beranda Anda yang berjalan di Azure. Anda mungkin harus menunggu 20 detik atau lebih saat Azure menyiapkan server untuk penelusuran kesalahan. Penundaan ini hanya terjadi saat pertama kali Anda menjalankan mode debug pada aplikasi dalam periode 48 jam. Ketika Anda memulai penelusuran kesalahan lagi dalam periode yang sama, tidak ada penundaan.
Di browser web yang dibuka ke halaman beranda Iklan Contoso, buat iklan baru.
Membuat iklan menyebabkan pesan antrean dibuat, yang diambil oleh WebJob dan diproses. Ketika WebJobs SDK memanggil fungsi untuk memproses pesan antrean, kode mengenai titik henti Anda.
Saat debugger pecah di titik henti, Anda dapat memeriksa dan mengubah nilai variabel saat program menjalankan cloud. Dalam ilustrasi berikut, debugger menunjukkan isi objek blobInfo yang diteruskan ke metode
GenerateThumbnail
.Tekan F5 untuk melanjutkan.
Metode
GenerateThumbnail
selesai membuat gambar mini.Di browser, refresh halaman Indeks dan Anda akan melihat gambar mini.
Di Visual Studio, tekan SHIFT+F5 untuk menghentikan penelusuran kesalahan.
Di Server Explorer, klik kanan simpul ContosoAdsWebJob dan klik Tampilkan Dasbor.
Masuk dengan kredensial Azure Anda, lalu klik nama WebJob untuk masuk ke halaman untuk WebJob Anda.
Dasbor menunjukkan bahwa fungsi
GenerateThumbnail
yang dijalankan baru-baru ini.(Saat Anda mengeklik Tampilkan Dasbor, Anda tidak perlu masuk, dan browser langsung masuk ke halaman untuk WebJob Anda.)
Klik nama fungsi untuk melihat detail tentang eksekusi fungsi.
Jika fungsi Anda menulis log, Anda bisa mengeklik ToggleOutput untuk melihatnya.
Catatan tentang penelusuran kesalahan jarak jauh
Berjalan dalam mode debug dalam produksi tidak disarankan. Jika aplikasi produksi Anda tidak diskalakan ke beberapa instans server, penelusuran kesalahan mencegah server web merespons permintaan lain. Jika Anda memiliki beberapa instans server web, ketika Anda melampirkan ke debugger, Anda mendapatkan instans acak, dan Anda tidak memiliki cara untuk memastikan bahwa permintaan browser berikutnya membuka instans yang sama. Selain itu, Anda biasanya tidak menerapkan build debug ke produksi, dan pengoptimalan compiler untuk build rilis mungkin membuatnya tidak mungkin untuk menunjukkan apa yang terjadi baris demi baris dalam kode sumber Anda. Untuk memecahkan masalah produksi, sumber daya terbaik Anda adalah pelacakan aplikasi dan log server web.
Hindari perhentian panjang di titik henti saat penelusuran kesalahan jarak jauh. Azure memperlakukan proses yang dihentikan lebih dari beberapa menit sebagai proses yang tidak responsif, dan mematikannya.
Saat Anda melakukan penelusuran kesalahan, server akan mengirim data ke Visual Studio, yang dapat memengaruhi biaya bandwidth. Untuk informasi tentang tarif bandwidth, lihat Harga Azure.
Pastikan bahwa atribut
debug
dari elemencompilation
dalam file Web.config diatur ke true. Ini diatur ke true secara default saat Anda memublikasikan konfigurasi build debug.<system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web>
Jika Anda menemukan bahwa debugger tidak masuk ke kode yang ingin Anda debug, Anda mungkin harus mengubah pengaturan Just My Code. Untuk informasi selengkapnya, lihat Menentukan apakah hanya akan men-debug kode pengguna menggunakan Just My Code di Visual Studio.
Timer dimulai di server saat Anda mengaktifkan fitur penelusuran kesalahan jarak jauh, dan setelah 48 jam, fitur secara otomatis dimatikan. Batas waktu 48 jam ini dilakukan demi keamanan dan performa. Anda dapat dengan mudah mengaktifkan kembali fitur sebanyak mungkin. Sebaiknya biarkan fitur ini nonaktif saat Anda tidak melakukan penelusuran kesalahan secara aktif.
Anda dapat melampirkan debugger secara manual ke proses apa pun, tidak hanya proses aplikasi (w3wp.exe). Untuk informasi selengkapnya tentang cara menggunakan mode debug di Visual Studio, lihat Men-debug di Visual Studio.
Gambaran umum log diagnostik
Aplikasi ASP.NET yang berjalan di aplikasi App Service dapat membuat jenis log berikut:
- Log pelacakan aplikasi
Aplikasi membuat log ini dengan memanggil metode kelas System.Diagnostics.Trace. - Log server web
Server web membuat entri log untuk setiap permintaan HTTP ke aplikasi. - Log pesan kesalahan terperinci
Server web membuat halaman HTML dengan beberapa informasi tambahan untuk permintaan HTTP yang gagal (permintaan yang menghasilkan kode status 400 atau lebih besar). - Log pelacakan permintaan yang gagal
Server web membuat file XML dengan informasi pelacakan terperinci untuk permintaan HTTP yang gagal. Server web juga menyediakan file XSL untuk memformat XML di browser.
Pengelogan memengaruhi performa aplikasi, sehingga Azure memberi Anda kemampuan untuk mengaktifkan atau menonaktifkan setiap jenis log sesuai kebutuhan. Untuk log aplikasi, Anda dapat menentukan bahwa hanya log di atas tingkat keparahan tertentu yang harus ditulis. Saat Anda membuat aplikasi baru, secara default semua pengelogan akan dinonaktifkan.
Log ditulis ke file di folder LogFiles di sistem file aplikasi Anda dan dapat diakses melalui FTP. Log server web dan log aplikasi juga dapat ditulis ke akun Azure Storage. Anda dapat menyimpan volume log yang lebih besar di akun penyimpanan daripada yang dimungkinkan dalam sistem file. Anda dibatasi hingga maksimum 100 megabita log saat menggunakan sistem file. (Log sistem file hanya untuk tujuan retensi jangka pendek. Azure menghapus file log lama untuk memberi ruang bagi yang baru setelah batas tercapai.)
Membuat dan melihat log jejak aplikasi
Di bagian ini, Anda melakukan tugas berikut:
- Tambahkan pernyataan pelacakan ke proyek web yang Anda buat di Mulai menggunakan Azure dan ASP.NET.
- Lihat log saat Anda menjalankan proyek secara lokal.
- Lihat log seperti yang dihasilkan oleh aplikasi yang berjalan di Azure.
Untuk informasi tentang cara membuat log aplikasi di WebJobs, lihat Cara menggunakan penyimpanan antrean Azure menggunakan WebJobs SDK - Cara menulis log. Petunjuk berikut untuk menampilkan log dan mengontrol metode penyimpanannya di Azure berikut berlaku juga untuk log aplikasi yang dibuat oleh WebJobs.
Menambahkan pernyataan pelacakan ke aplikasi
Buka Controllers\HomeController.cs, dan ganti metode
Index
,About
, danContact
dengan kode berikut untuk menambahkan pernyataanTrace
dan pernyataanusing
untukSystem.Diagnostics
:public ActionResult Index() { Trace.WriteLine("Entering Index method"); ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application."; Trace.TraceInformation("Displaying the Index page at " + DateTime.Now.ToLongTimeString()); Trace.WriteLine("Leaving Index method"); return View(); } public ActionResult About() { Trace.WriteLine("Entering About method"); ViewBag.Message = "Your app description page."; Trace.TraceWarning("Transient error on the About page at " + DateTime.Now.ToShortTimeString()); Trace.WriteLine("Leaving About method"); return View(); } public ActionResult Contact() { Trace.WriteLine("Entering Contact method"); ViewBag.Message = "Your contact page."; Trace.TraceError("Fatal error on the Contact page at " + DateTime.Now.ToLongTimeString()); Trace.WriteLine("Leaving Contact method"); return View(); }
Tambahkan pernyataan
using System.Diagnostics;
ke bagian atas file.
Melihat output pelacakan secara lokal
Tekan F5 untuk menjalankan aplikasi dalam mode debug.
Pendengar jejak default menulis semua output jejak ke jendela Output, bersama dengan output Debug lainnya. Ilustrasi berikut menunjukkan output dari pernyataan jejak yang Anda tambahkan ke metode
Index
.Langkah-langkah berikut menunjukkan cara melihat output jejak di halaman web, tanpa mengompilasi dalam mode debug.
Buka file Web.config aplikasi (yang terletak di folder proyek) dan tambahkan elemen
<system.diagnostics>
di akhir file tepat sebelum elemen</configuration>
penutup:<system.diagnostics> <trace> <listeners> <add name="WebPageTraceListener" type="System.Web.WebPageTraceListener, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </listeners> </trace> </system.diagnostics>
WebPageTraceListener
memungkinkan Anda melihat output jejak dengan menjelajah ke /trace.axd
.
Tambahkan elemen jejak di bawah
<system.web>
dalam Web.config file, seperti contoh berikut:<trace enabled="true" writeToDiagnosticsTrace="true" mostRecent="true" pageOutput="false" />
Klik CTRL + F5 untuk menjalankan aplikasi.
Di bilah alamat jendela browser, tambahkan trace.axd ke URL, lalu tekan Enter (URL mirip dengan
http://localhost:53370/trace.axd
).Pada halaman Jejak Aplikasi, klik Tampilkan Detail pada baris pertama (bukan baris BrowserLink).
Halaman Minta Detail muncul, dan di bagian Lacak Informasi, Anda akan melihat output dari pernyataan jejak yang ditambahkan ke metode
Index
.Secara default,
trace.axd
hanya tersedia secara lokal. Jika Anda ingin membuatnya tersedia dari aplikasi jarak jauh, Anda dapat menambahkanlocalOnly="false"
ke elementrace
dalam file Web.config, seperti yang ditunjukkan dalam contoh berikut:<trace enabled="true" writeToDiagnosticsTrace="true" localOnly="false" mostRecent="true" pageOutput="false" />
Namun, mengaktifkan
trace.axd
di aplikasi produksi tidak disarankan karena alasan keamanan. Di bagian berikut, Anda akan melihat cara yang lebih mudah untuk membaca log pelacakan di aplikasi App Service.
Melihat output pelacakan di Azurel
Di Penjelajah Solusi, klik kanan proyek web dan pilih Terbitkan.
Dalam kotak dialog Terbitkan Webm klik Terbitkan.
Setelah Visual Studio menerbitkan pembaruan Anda, jendela browser akan dibuka ke halaman beranda Anda (dengan asumsi Anda tidak menghapus URL Tujuan pada tab Koneksi).
Di Server Explorer, klik kanan aplikasi Anda dan pilih Tampilkan Log Streaming.
Jendela Output menunjukkan bahwa Anda tersambung ke layanan streaming log, dan menambahkan baris pemberitahuan setiap menit yang berlalu tanpa log untuk ditampilkan.
Di jendela browser yang memperlihatkan halaman beranda aplikasi Anda, klik Kontak.
Dalam beberapa detik, output dari jejak tingkat kesalahan yang Anda tambahkan ke metode
Contact
muncul di jendela Output.Visual Studio hanya menampilkan jejak tingkat kesalahan karena itu adalah pengaturan default saat Anda mengaktifkan layanan pemantauan log. Saat Anda membuat aplikasi App Service baru, semua pengelogan dinonaktifkan secara default, seperti yang Anda lihat saat Anda membuka halaman pengaturan sebelumnya:
Namun, ketika Anda memilih Lihat Log Streaming, Visual Studio secara otomatis mengubah Pengelogan Aplikasi (Sistem File) menjadi Kesalahan, yang berarti log tingkat kesalahan telah dilaporkan. Untuk melihat semua log pelacakan, Anda dapat mengubah pengaturan ini ke Verbose. Ketika Anda memilih tingkat keparahan yang lebih rendah dari kesalahan, semua log untuk tingkat keparahan yang lebih tinggi juga dilaporkan. Jadi, ketika Anda memilih verbose, Anda juga melihat log informasi, peringatan, dan kesalahan.
Di Server Explorer, klik kanan aplikasi, lalu klik Tampilkan Pengaturan seperti yang Anda lakukan sebelumnya.
Ubah Pengelogan Aplikasi (Sistem File) ke Verbose,, lalu klik Simpan.
Di jendela browser yang sekarang memperlihatkan halaman Kontak Anda, klik Beranda, lalu klik Tentang, lalu klik Kontak.
Dalam beberapa detik, jendela Output menampilkan semua output pelacakan Anda.
Di bagian ini, Anda mengaktifkan dan menonaktifkan pengelogan dengan menggunakan pengaturan aplikasi. Anda juga dapat mengaktifkan dan menonaktifkan pendengar pelacakan dengan mengubah file Web.config. Memodifikasi file Web.config menyebabkan domain aplikasi didaur ulang sedangkan mengaktifkan pengelogan melalui konfigurasi aplikasi tidak melakukannya. Jika masalah tersebut membutuhkan waktu lama untuk direproduksi, atau terputus-putus, mendaur ulang domain aplikasi mungkin bisa "memperbaiki" itu dan memaksa Anda untuk menunggu sampai itu terjadi lagi. Mengaktifkan diagnostik di Azure memungkinkan Anda mulai menangkap informasi kesalahan segera tanpa mendaur ulang domain aplikasi.
Fitur jendela output
Tab Microsoft Azure Log dari Jendela Output memiliki beberapa tombol dan kotak teks:
Ini melakukan fungsi-fungsi berikut:
- Membersihkan jendela Output.
- Mengaktifkan atau menonaktifkan pembungkus kata.
- Memulai atau menghentikan pemantauan log.
- Menentukan log mana yang akan dipantau.
- Mengunduh log.
- Memfilter log berdasarkan string pencarian atau ekspresi reguler.
- Tutup jendela Output.
Jika Anda memasukkan string pencarian atau ekspresi reguler, Visual Studio memfilter informasi pengelogan di klien. Itu berarti Anda dapat memasukkan kriteria setelah log ditampilkan di jendela Output dan Anda dapat mengubah kriteria pemfilteran tanpa harus meregenerasi log.
Lihat log server web
Log server web merekam semua aktivitas HTTP untuk aplikasi. Untuk melihatnya di jendela Output, Anda harus mengaktifkannya untuk aplikasi dan memberi tahu Visual Studio bahwa Anda ingin memantaunya.
Di tab Azure Web App Configuration yang Anda buka dari Server Explorer, ubah Pengelogan Server Web menjadi Aktif, lalu klik Simpan.
Di Jendela Output, klik tombol Tentukan log Microsoft Azure mana yang akan dipantau.
Dalam kotak dialog Opsi Pengelogan Microsoft Azure, pilih Log server web, lalu klik OK.
Di jendela browser yang memperlihatkan aplikasi, klik Beranda, lalu klik Tentang, lalu klik Kontak.
Log aplikasi umumnya muncul pertama kali, diikuti oleh log server web. Anda mungkin harus menunggu beberapa saat agar log muncul.
Secara default, ketika Anda pertama kali mengaktifkan log server web dengan menggunakan Visual Studio, Azure menulis log ke sistem file. Sebagai alternatif, Anda dapat menggunakan portal Microsoft Azure untuk menentukan bahwa log server web harus ditulis ke kontainer blob di akun penyimpanan.
Jika Anda menggunakan portal untuk mengaktifkan pengelogan server web ke akun penyimpanan Azure, lalu menonaktifkan pengelogan di Visual Studio, saat Anda mengaktifkan kembali pengelogan di Visual Studio, pengaturan akun penyimpanan Anda dipulihkan.
Lihat log pesan kesalahan terperinci
Log kesalahan terperinci menyediakan beberapa informasi tambahan tentang permintaan HTTP yang menghasilkan kode respons kesalahan (400 atau lebih tinggi). Untuk melihatnya di jendela Output, Anda harus mengaktifkannya untuk aplikasi dan memberi tahu Visual Studio bahwa Anda ingin memantaunya.
Di tab Azure Web App Configuration yang Anda buka dari Server Explorer, ubah Pesan Kesalahan Terperinci menjadi Aktif, lalu klik Simpan.
Di Jendela Output, klik tombol Tentukan log Microsoft Azure mana yang akan dipantau.
Dalam kotak dialog Opsi Pengelogan Microsoft Azure, pilih Semua log, lalu klik OK.
Di bilah alamat jendela browser, tambahkan karakter tambahan ke URL untuk membuat kesalahan 404 (misalnya,
http://localhost:53370/Home/Contactx
), dan tekan Enter.Setelah beberapa detik, log kesalahan terperinci muncul di jendela Output Visual Studio.
Control+klik tautan untuk melihat output log yang diformat di browser:
Unduh log sistem file
Log apa pun yang dapat Anda pantau di jendela Output juga dapat diunduh sebagai file .zip.
Di jendela Output, klik Unduh Log Streaming.
File Explorer terbuka ke folder Unduhan Anda dengan file unduhan yang dipilih.
Ekstrak file .zip, dan Anda akan melihat struktur folder berikut ini:
Log pelacakan aplikasi berada di file .txt dalam folder LogFiles\Application.
Log server web berada di file .log dalam folder LogFiles\http\RawLogs. Anda dapat menggunakan alat seperti Log Parser untuk melihat dan memanipulasi file-file ini.
Log pesan kesalahan terperinci berada di file .html dalam folder LogFiles\DetailedErrors.
(Folder penyebaran adalah untuk file yang dibuat oleh penerbitan kontrol sumber; tidak memiliki apa pun yang terkait dengan penerbitan Visual Studio. Folder Git ditujukan untuk jejak yang terkait dengan penerbitan kontrol sumber dan layanan streaming file log.)
Lihat log pelacakan permintaan yang gagal
Log pelacakan permintaan yang gagal berguna untuk memahami detail bagaimana IIS menangani permintaan HTTP, dalam skenario seperti penulisan ulang URL atau masalah autentikasi.
Aplikasi App Service menggunakan fungsionalitas pelacakan permintaan gagal yang sama yang telah tersedia dengan IIS 7.0 dan yang lebih baru. Namun, Anda tidak memiliki akses ke pengaturan IIS yang mengonfigurasi kesalahan yang dicatat. Saat Anda mengaktifkan pelacakan permintaan yang gagal, semua kesalahan akan ditangkap.
Anda dapat mengaktifkan pelacakan permintaan yang gagal dengan menggunakan Visual Studio, tetapi Anda tidak dapat melihatnya di Visual Studio. Log ini adalah file XML. Layanan log streaming hanya memantau file yang dianggap dapat dibaca dalam mode teks biasa: file .txt, .html, dan .log.
Anda dapat melihat log pelacakan permintaan yang gagal di browser secara langsung melalui FTP atau secara lokal setelah menggunakan alat FTP untuk mengunduhnya ke komputer lokal Anda. Di bagian ini, Anda akan melihatnya di browser secara langsung.
Di tab Konfigurasi dari jendela Azure Web App yang Anda buka dari Server Explorer, ubah Pelacakan Permintaan Gagal menjadi Aktif, lalu klik Simpan.
Di bilah alamat jendela browser yang menampilkan aplikasi, tambahkan karakter tambahan ke URL dan klik Enter untuk membuat kesalahan 404.
Ini menyebabkan log pelacakan permintaan yang gagal dibuat, dan langkah-langkah berikut menunjukkan cara melihat atau mengunduh log.
Di Visual Studio, di tab Konfigurasi jendela Azure Web App, klik Buka di Portal Manajemen.
Di halaman Pengaturan portal Microsoft Azure untuk aplikasi Anda, klik Kredensial penyebaran, lalu masukkan nama pengguna dan kata sandi baru.
Catatan
Saat masuk, Anda harus menggunakan nama pengguna lengkap yang diawali dengan nama aplikasi. Misalnya, jika Anda memasukkan "myid" sebagai nama pengguna dan situsnya adalah "myexample", Anda masuk sebagai "myexample\myid".
Di jendela browser baru, buka URL yang ditampilkan di bawah nama host FTP atau nama host FTPS di halaman Gambaran Umum untuk aplikasi Anda.
Masuk menggunakan kredensial FTP yang Anda buat sebelumnya (termasuk awalan nama aplikasi untuk nama pengguna).
Browser menampilkan folder akar aplikasi.
Pilih folder LogFiles.
Buka folder yang bernama W3SVC plus nilai numerik.
Folder berisi file XML untuk setiap kesalahan yang telah dicatat setelah Anda mengaktifkan pelacakan permintaan yang gagal, dan file XSL yang dapat digunakan browser untuk memformat XML.
Klik file XML untuk permintaan gagal yang ingin Anda lihat informasi pelacakannya.
Ilustrasi berikut ini memperlihatkan bagian dari informasi pelacakan untuk kesalahan sampel.
Langkah berikutnya
Anda telah melihat bagaimana Visual Studio memudahkan untuk melihat log yang dibuat oleh aplikasi App Service. Bagian berikut ini menyediakan tautan ke lebih banyak sumber daya tentang topik terkait:
- Pemecahan masalah App Service
- Penelusuran kesalahan di Visual Studio
- Penelusuran kesalahan jarak jauh di Azure
- Pelacakan dalam aplikasi ASP.NET
- Menganalisis log server web
- Menganalisis log pelacakan permintaan yang gagal
- Penelusuran kesalahan Cloud Services
Pemecahan masalah App Service
Untuk informasi selengkapnya tentang pemecahan masalah aplikasi di Azure App Service, lihat sumber daya berikut ini:
- Cara memantau aplikasi
- Menyelidiki Kebocoran Memori di Azure App Service dengan Visual Studio 2013. Postingan blog Microsoft ALM tentang fitur Visual Studio untuk menganalisis masalah memori terkelola.
- Alat online Azure App Service yang harus Anda ketahui. Postingan blog oleh Amit Apple.
Untuk bantuan tentang pertanyaan pemecahan masalah tertentu, mulailah utas di salah satu forum berikut:
Penelusuran kesalahan di Visual Studio
Untuk informasi selengkapnya tentang cara menggunakan mode debug di Visual Studio, lihat Penelusuran Kesalahan di Visual Studio dan Tips Penelusuran Kesalahan dengan Visual Studio 2010.
Penelusuran kesalahan jarak jauh di Azure
Untuk informasi selengkapnya tentang penelusuran kesalahan jarak jauh untuk aplikasi App Service dan WebJob, lihat sumber daya berikut ini:
- Pengenalan Penelusuran Kesalahan Jarak jauh Azure App Service.
- Pengenalan Penelusuran Kesalahan Jarak Jauh Azure App Service bagian 2 - Di Dalam Penelusuran Kesalahan Jarak Jauh
- Pengenalan Penelusuran Kesalahan Jarak Jauh di Azure App Service bagian 3 - Lingkungan Multi-Instans dan GIT
- Penelusuran Kesalahang WebJobs (video)
Jika aplikasi Anda menggunakan Azure Web API atau back-end Layanan Seluler dan Anda perlu men-debug itu, lihat Penelusuran Kesalahan .NET Backend di Visual Studio.
Pelacakan dalam aplikasi ASP.NET
Tidak ada pengenalan menyeluruh dan terbaru untuk melacak ASP.NET yang tersedia di Internet. Anda hanya bisa memulai dengan materi pengantar lama yang ditulis untuk Formulir Web karena MVC belum ada, dan melengkapinya dengan postingan blog baru yang berfokus pada masalah tertentu. Beberapa tempat yang bagus untuk memulai adalah sumber daya berikut:
Pemantauan dan Telemetri (Membangun Real-World Cloud Apps dengan Azure).
Bab e-book dengan rekomendasi untuk dilacak di aplikasi cloud Azure.ASP.NET Tracing
Tua tetapi masih merupakan sumber daya yang bagus untuk pengenalan dasar subjek.Lacak Pendengar
Informasi tentang melacak pendengar tetapi tidak menyebutkan WebPageTraceListener.Penelusuran: Mengintegrasikan ASP.NET Tracing dengan System.Diagnostics Tracing
Artikel ini juga sudah tua, tetapi menyertakan beberapa informasi tambahan yang tidak dibahas artikel pengantar ini.Menelusuri dalam ASP.NET MVC Razor Views
Selain melacak dalam tampilan Razor, postingan juga menjelaskan cara membuat filter kesalahan untuk mencatat semua pengecualian yang tidak tertangani dalam aplikasi MVC. Untuk informasi tentang cara mencatat semua pengecualian yang tidak tertangani dalam aplikasi Formulir Web, lihat contoh Global.asax di Contoh Lengkap untuk Penangan Kesalahan di MSDN. Baik di MVC atau Web Forms, jika Anda ingin mencatat pengecualian tertentu tetapi dengan tetap memberlakukan penanganan kerangka kerja default, Anda bisa menangkap dan menumbuhkan kembali seperti dalam contoh berikut:try { // Your code that might cause an exception to be thrown. } catch (Exception ex) { Trace.TraceError("Exception: " + ex.ToString()); throw; }
Streaming Diagnostik Melacak Pengelogan dari Baris Perintah Azure (plus Glimpse!)
Cara menggunakan baris perintah untuk melakukan apa yang harus dilakukan berdasarkan tutorial ini di Visual Studio. Glimpse adalah alat untuk penelusuran kesalahan aplikasi ASP.NET.Menggunakan Pengelogan dan Diagnostik Web Apps - dengan David Ebbo dan Log Streaming dari Web Apps - dengan David Ebbo
Video oleh Scott Hanselman dan David Ebbo.
Untuk pengelogan kesalahan, alternatif untuk menulis kode pelacakan Anda sendiri adalah menggunakan kerangka kerja pengelogan sumber terbuka seperti ELMAH. Untuk informasi selengkapnya, lihat postingan blog Scott Hanselman tentang ELMAH.
Selain itu, Anda tidak perlu menggunakan pelacakan ASP.NET atau System.Diagnostics
untuk mendapatkan log streaming dari Azure. Layanan log streaming aplikasi App Service mengalirkan file .txt, .html, atau .log yang ditemukan di folder LogFiles. Oleh karena itu, Anda dapat membuat sistem pengelogan Anda sendiri yang menulis ke sistem file aplikasi, dan file Anda secara otomatis dialirkan dan diunduh. Yang harus Anda lakukan adalah menulis kode aplikasi yang membuat file di folder d:\home\logfiles.
Menganalisis log server web
Untuk informasi selengkapnya tentang menganalisis log server web, lihat sumber daya berikut ini:
- LogParser
Alat untuk melihat data dalam log server web(file .log). - Pemecahan Masalah Performa IIS atau Kesalahan Aplikasi menggunakan LogParser
Pengenalan alat Log Parser yang dapat Anda gunakan untuk menganalisis log server web. - Postingan blog oleh Robert McMurray tentang penggunaan LogParser
- Kode status HTTP di IIS 7.0, IIS 7.5, dan IIS 8.0
Menganalisis log pelacakan permintaan yang gagal
Situs web Microsoft TechNet menyertakan bagian Menggunakan Pelacakan Permintaan yang Gagal, yang mungkin berguna untuk memahami cara menggunakan log ini. Namun, dokumentasi ini berfokus terutama pada konfigurasi pelacakan permintaan yang gagal di IIS, yang tidak dapat Anda lakukan di Azure App Service.