Saya sedang menulis layanan web (menggunakan ASP.NET MVC) dan untuk tujuan dukungan kami ingin dapat mencatat permintaan dan tanggapan sedekat mungkin dengan format mentah, on-the-wire (yaitu termasuk HTTP metode, path, semua header, dan tubuh) ke dalam database.
Apa yang saya tidak yakin adalah bagaimana mendapatkan data ini dengan cara yang paling 'rusak'. Saya dapat membentuk kembali seperti apa yang saya yakini seperti permintaan dengan memeriksa semua properti dariHttpRequest
objek dan membangun string dari mereka (dan juga untuk respon) tetapi saya benar-benar ingin mendapatkan data permintaan / respons aktual yang dikirim melalui kawat.
Saya senang menggunakan mekanisme intersepsi seperti filter, modul, dll. Dan solusinya dapat spesifik untuk IIS7. Namun, saya lebih suka menyimpannya dalam kode terkelola saja.
Ada rekomendasi?
Sunting: Saya perhatikan bahwa HttpRequest
memiliki SaveAs
metode yang dapat menyimpan permintaan ke disk tetapi ini merekonstruksi permintaan dari kondisi internal menggunakan beban metode pembantu internal yang tidak dapat diakses secara publik (cukup mengapa ini tidak memungkinkan menyimpan ke yang disediakan pengguna) aliran saya tidak tahu). Jadi itu mulai terlihat seperti saya harus melakukan yang terbaik untuk merekonstruksi teks permintaan / respons dari objek ... erangan.
Sunting 2: Harap perhatikan bahwa saya mengatakan seluruh permintaan termasuk metode, jalur, tajuk dll. Respons saat ini hanya melihat aliran tubuh yang tidak termasuk informasi ini.
Sunting 3: Apakah tidak ada yang membaca pertanyaan di sekitar sini? Sejauh ini lima jawaban namun tidak ada satu pun petunjuk tentang cara untuk mendapatkan seluruh permintaan mentah on-the-wire. Ya, saya tahu saya bisa menangkap aliran keluaran dan tajuk serta URL dan semua itu dari objek permintaan. Saya sudah mengatakan itu dalam pertanyaan, lihat:
Saya dapat membentuk kembali apa yang saya yakini seperti permintaan dengan memeriksa semua properti dari objek HttpRequest dan membuat string dari mereka (dan juga untuk respon) tetapi saya benar-benar ingin mendapatkan data request / response yang sebenarnya yang dikirim pada kabel.
Jika Anda mengetahui data mentah lengkap (termasuk tajuk, url, metode http, dll.) Tidak dapat diambil maka itu akan berguna untuk diketahui. Demikian pula jika Anda tahu cara mendapatkan semuanya dalam format mentah (ya, maksud saya masih termasuk header, url, metode http, dll.) Tanpa harus merekonstruksi itu, yang saya tanyakan, maka itu akan sangat berguna. Tetapi mengatakan kepada saya bahwa saya dapat merekonstruksinya dari HttpRequest
/ HttpResponse
objek tidak berguna. Saya tahu itu. Saya sudah mengatakannya.
Harap dicatat: Sebelum ada yang mulai mengatakan ini adalah ide yang buruk, atau akan membatasi skalabilitas, dll., Kami juga akan menerapkan mekanisme pelambatan, pengiriman berurutan, dan anti-ulangan di lingkungan terdistribusi, sehingga pembuatan basis data tetap diperlukan. Saya tidak mencari diskusi apakah ini ide yang baik, saya sedang mencari cara untuk melakukannya.