ฉันมีการกำหนดค่า NServiceBus ที่ทำงานได้ดีบนเครื่องของนักพัฒนาและในสภาพแวดล้อมการพัฒนาของฉัน
อย่างไรก็ตาม เมื่อฉันย้ายมันไปที่สภาพแวดล้อมการทดสอบ ข้อความของฉันก็เริ่มถูกโยนทิ้ง
นี่คือระบบ:
- แอปได้รับข้อความ TCP จากระบบเมนเฟรมและส่งไปยัง MSMQ (เรียกว่า
FromMainframe
) - แอปพลิเคชันที่โฮสต์ใน IIS มีวิธี "จัดการ" สำหรับ MSMQ นั้นและประมวลผลข้อความจากเมนเฟรม
ในสภาพแวดล้อมการทดสอบของฉัน ขั้นตอนที่สองเกิดขึ้นเพียงครึ่งทางเท่านั้น ข้อความถูกดึงออกมาจาก MSMQ แต่แอปพลิเคชันของฉันไม่ได้ประมวลผล
ข้อมูลของฉันสูญหายอย่างมีประสิทธิภาพ! NServiceBus ลบมันออกจากคิว แต่ฉันไม่เคยประมวลผลมันเลย พวกเขาไม่อยู่ในคิวข้อผิดพลาดด้วยซ้ำ!
นี่คือสิ่งที่ฉันได้ลองเพื่อพยายามค้นหาว่าเกิดอะไรขึ้น:
- ตรวจสอบไฟล์กำหนดค่า
- Attach a remote debugger to the process to see what the
Handle
method is doing- The
Handle
method is never called (but when I attach to the Development Environment my breakpoint in myHandle
method is hit and it all works flawlessly).
- The
- ปรับใช้เวอร์ชัน Dev ของฉันอีกครั้งกับ Test Envioronment แล้วลองขั้นตอนที่ 2 อีกครั้ง (ในกรณีที่เวอร์ชันไม่เหมือนกันทุกประการ)
- ตรวจสอบไฟล์กำหนดค่าอีกครั้ง
- Check that the Error queue is not filling up
- The error queue stays empty (I wish it would fill up, then my data would not be LOST).
- Check for any other process that may be pulling stuff from my MSMQs
- I Turned off my IIS website and the messages in the
FromMainframe
queue start to backup. - เมื่อฉันเปิดเครื่องอีกครั้ง ข้อความจะหายไปค่อนข้างเร็ว (แต่ยังไม่ทั้งหมดในคราวเดียว) ความเร็วที่หายไปนั้นเร็วเกินไปสำหรับการประมวลผลด้วยวิธี
Handle
ของฉัน
- I Turned off my IIS website and the messages in the
- ตรวจสอบไฟล์ Config อีกครั้ง
- Run the NServiceBusTools\MsmqUtils\Runner.exe \i
- I ran it, rebooted, ran it again and again for good measure!
- ตรวจสอบการกำหนดค่าอีกครั้ง (ฉันคงพลาดอะไรบางอย่างใช่ไหม)
- Check the Development Environment Configs are not pointing to the Test Environment
- I don't think it is possible to use another computer's MSMQ as your input queue, but it does not hurt to check.
- มองหาบล็อกที่ตรวจจับได้ที่อาจทำลายข้อความของฉันอย่างเงียบๆ
- การตรวจสอบไฟล์ Config ครั้งสุดท้าย
- สร้างสภาพแวดล้อมการทดสอบของฉันใหม่บนเครื่องอื่น (ทำงานได้อย่างไร้ที่ติ)
- Run my stuff outside of IIS.
- When I host outside of IIS (using NServiceBus.Host.exe) it all works fine. So it has to be an IIS thing right?
- บ้าไปแล้ว และหวังว่า Stack Overflow จะสามารถให้ข้อมูลเชิงลึกทุกประเภทได้