2009-09-24 16 views
8

मैं एक एएसपी.NET वेब एप्लिकेशन लिख रहा हूं जो विंडोज सर्वर 2008 (आईआईएस 7) पर चलेंगे।ASP.NET/IIS7 में कितने समवर्ती आउटबाउंड HttpWebRequest कॉल किए जा सकते हैं?

प्रत्येक पृष्ठ के कोडबेइंड को HttpWebRequest और GET का उपयोग कर बाहरी सर्वर पर कम से कम एक सिंक्रोनस वेब सेवा कॉल करने की आवश्यकता होगी।

मेरा प्रश्न - क्या मैं बाहर कर सकते हैं आउटबाउंड HttpWebRequest कॉल की संख्या के लिए कोई सीमा है? (मान लें कि जिस सर्वर पर मैं कॉल कर रहा हूं उसकी कोई सीमा नहीं है)

क्या ऐप स्केल को बेहतर बनाने के लिए इन कनेक्शनों को पूल करने का कोई साधन है? क्या एक वेब उद्यान विन्यास मदद करेगा?

उत्तर

5

डिफ़ॉल्ट, एक HTTP करके/1.1 सर्वर दो कनेक्शन के लिए सीमित है, और एक HTTP/1.0 सर्वर चार कनेक्शन तक सीमित है। इसलिए, यदि आप HTTP/1.1 सर्वर पर दो से अधिक उत्कृष्ट अनुरोध जारी करने का प्रयास कर रहे हैं, तो आपके ASP.NEt ऐप में गंभीर थ्रूपुट समस्याएं होंगी, उदाहरण के लिए।

आपको प्रति सर्वर या वैश्विक स्तर पर कनेक्शन सीमा बढ़ाने की आवश्यकता होगी।

उदाहरण के लिए

, विश्व स्तर पर:

ServicePointManager.DefaultConnectionLimit = 10; // allow 10 outstanding connections 

आशा इस मदद करता है।

+0

यह वास्तव में सहायक था। सोचा था कि मैं इसे web.config के माध्यम से सेट करने के लिए जोड़ूंगा, आप system.net/connection प्रबंधन में पते जोड़ सकते हैं। – Jacob

1

मुझे लगता है कि आपका प्रश्न नेटवर्क कॉन्फ़िगरेशन के लिए तैयार होना चाहिए।

मैं कहूंगा कि यदि आप प्रत्येक पृष्ठ एक सिंक्रोनस बाहरी कॉल पर निर्भर हैं तो आप परेशानी के लिए पूछ रहे हैं। क्या होगा यदि आपको बाहरी वेब सेवा पर लटका पाने के लिए अनुरोध की संख्या मिलती है? आपके पास अपने अंत में कुछ समस्याएं होंगी और आप इसके बारे में कुछ भी नहीं कर सकते हैं।

क्या आपने कॉलबैक के साथ एसिंक कॉल को माना है?

संपादित करें: Asynchronous Pages in ASP.NET 2.0

+0

async होगा जब एक ASPX पेज के codebehind से बुलाया कॉल काम? – frankadelic

+0

यह एक भारित सवाल है, लेकिन मैंने एक लिंक जोड़ा जिसमें एक उदाहरण है जो आपको जाना चाहिए। –