เรามีแอปพลิเคชัน windows ซึ่งเรียกใช้เมธอดบริการเว็บสำหรับการเข้าถึงฐานข้อมูล เราพบกรณีที่เราทำการเรียกบริการเว็บแบบอะซิงโครนัสเป็นเวลานาน (15+ วินาที) ไปยังบริการ WCF บน IIS หาก UI สร้างอย่างอื่น การบล็อก (เป็นโค้ดเก่า) การเรียกใช้เว็บเซอร์ขณะที่กำลังดำเนินอยู่ การเรียกเพิ่มเติมเหล่านั้นจะบล็อกจนกว่าการเรียก async เริ่มต้นจะเสร็จสิ้น
สิ่งนี้จะไม่เกิดขึ้นเมื่อทั้ง UI และบริการบนเว็บทำงานใน Visual Studio ด้วย IIS Express: การบล็อกการโทรนั้นรวดเร็ว และสิ่งเหล่านั้นทั้งหมดจะเสร็จสิ้นก่อนที่การโทร async ที่ยาวนานจะเสร็จสิ้น
บริการเว็บทั้งหมดมีดังต่อไปนี้:
<serviceThrottling
maxConcurrentCalls="5000" maxConcurrentSessions="5000" maxConcurrentInstances="5000" />
นอกจากนี้ maxConnections="500" ทุกที่
เราต้องการให้ IIS จัดการกับการเรียกบริการเว็บพร้อมกันเหล่านี้ในลักษณะเดียวกับที่ IIS Express ทำพร้อมกัน
...
ถ้ามันช่วยให้ทุกอย่างสมเหตุสมผล: เราจะค้นหาวัตถุ การค้นหาส่งคืนรายการ 50 อันดับแรก (โดยค่าเริ่มต้น) ที่ตรงตามเกณฑ์ และในขณะเดียวกัน เราจะเรียกใช้การนับจำนวน (*) แบบอะซิงโครนัสในการค้นหาเดียวกัน การสอบถามจำนวนอาจใช้เวลานานมาก ผู้ใช้ยืนยันว่าบางครั้งพวกเขาต้องการทราบว่าจำนวนทั้งหมดคืออะไร แต่โดยปกติแล้วพวกเขาต้องการที่จะสามารถเปิดวัตถุในรายการผลลัพธ์ได้นานก่อนที่การนับจะกลับมา การเปิดออบเจกต์เป็นที่ที่เรียกบริการเว็บแบบซิงโครนัส ก่อนหน้านี้ ผลการค้นหาและการนับทั้งหมดเป็นส่วนหนึ่งของวิธีการบริการเว็บเดียวกัน