ฉันกำลังเขียนบริการบนเว็บ (โดยใช้ ASP.NET MVC) และเพื่อวัตถุประสงค์ในการสนับสนุนเราสามารถบันทึกคำขอและการตอบสนองให้ใกล้เคียงที่สุดกับรูปแบบ raw, on-the-wire (เช่นรวมถึง HTTP วิธีการเส้นทางส่วนหัวทั้งหมดและร่างกาย) ลงในฐานข้อมูล
สิ่งที่ฉันไม่แน่ใจก็คือทำอย่างไรถึงจะได้รับข้อมูลนี้อย่างน้อย 'ยุ่งเหยิง' ฉันสามารถประกอบสิ่งที่ฉันเชื่อว่าคำขอดูเหมือนโดยตรวจสอบคุณสมบัติทั้งหมดของHttpRequest
วัตถุและสร้างสตริงจากพวกเขา (และในทำนองเดียวกันสำหรับการตอบสนอง) แต่ฉันต้องการรับข้อมูลคำขอ / การตอบสนองที่แท้จริง ส่งไปที่ลวด
ฉันยินดีที่จะใช้กลไกการสกัดกั้นใด ๆ เช่นตัวกรองโมดูลและอื่น ๆ และโซลูชันสามารถเฉพาะกับ IIS7 อย่างไรก็ตามฉันต้องการเก็บไว้ในรหัสที่ได้รับการจัดการเท่านั้น
คำแนะนำใด ๆ
แก้ไข:ฉันทราบว่าHttpRequest
มีSaveAs
วิธีการที่สามารถบันทึกการร้องขอไปยังดิสก์ได้ แต่สิ่งนี้จะสร้างการร้องขอจากสถานะภายในอีกครั้งโดยใช้วิธีการโหลดตัวช่วยภายในที่ไม่สามารถเข้าถึงได้แบบสาธารณะ กระแสฉันไม่รู้) ดังนั้นมันจึงดูเหมือนว่าฉันจะต้องทำให้ดีที่สุดเพื่อสร้างข้อความคำขอ / ตอบกลับจากวัตถุ ... คร่ำครวญ
แก้ไข 2:โปรดทราบว่าฉันได้กล่าวคำขอทั้งหมดรวมถึงวิธีการเส้นทางส่วนหัว ฯลฯ การตอบสนองปัจจุบันดูเฉพาะกระแสร่างกายซึ่งไม่รวมข้อมูลนี้
แก้ไข 3:ไม่มีใครอ่านคำถามแถวนี้หรือไม่? ห้าคำตอบจนถึงตอนนี้และยังไม่มีใครแม้แต่จะบอกวิธีที่จะได้รับคำขอแบบออนไลน์ทั้งหมด ใช่ฉันรู้ว่าฉันสามารถจับกระแสข้อมูลขาออกและส่วนหัวและ URL และเนื้อหาทั้งหมดจากวัตถุคำขอได้ ฉันพูดไปแล้วว่าในคำถามให้ดู:
ฉันสามารถประกอบสิ่งที่ฉันเชื่อว่าคำขอดูเหมือนโดยตรวจสอบคุณสมบัติทั้งหมดของวัตถุ HttpRequest และสร้างสตริงจากพวกเขา (และคล้ายกันสำหรับการตอบสนอง) แต่ฉันอยากได้รับข้อมูลคำขอ / การตอบสนองที่แท้จริง ที่ถูกส่งไปที่ลวด
หากคุณทราบข้อมูลดิบที่สมบูรณ์ (รวมถึงส่วนหัว, url, วิธี http ฯลฯ ) ก็ไม่สามารถเรียกคืนได้ซึ่งจะเป็นประโยชน์ในการรู้ ในทำนองเดียวกันถ้าคุณรู้วิธีรับทั้งหมดในรูปแบบ raw (ใช่ฉันยังคงหมายถึงส่วนหัว, url, วิธี http ฯลฯ ) โดยไม่ต้องสร้างมันขึ้นมาใหม่ซึ่งเป็นสิ่งที่ฉันถามแล้วมันจะมีประโยชน์มาก แต่การบอกฉันว่าฉันสามารถสร้างขึ้นใหม่ได้จากHttpRequest
/ HttpResponse
วัตถุไม่มีประโยชน์ ฉันรู้แล้ว. ฉันพูดไปแล้ว
โปรดทราบ: ก่อนที่จะมีใครบอกว่านี่เป็นความคิดที่ไม่ดีหรือจะจำกัดความสามารถในการขยาย ฯลฯ เราจะทำการใช้การควบคุมปริมาณการส่งต่อเนื่องและกลไกป้องกันการเล่นซ้ำในสภาพแวดล้อมแบบกระจายดังนั้นจึงจำเป็นต้องมีการบันทึกฐานข้อมูล ฉันไม่ได้มองหาการอภิปรายว่านี่เป็นความคิดที่ดีหรือไม่ฉันกำลังมองหาวิธีการที่สามารถทำได้