मेरे पास ASP.NET 4.0 अनुप्रयोग चल रहा है जो कि IIS 7.5 पर 64-बिट विंडोज सर्वर 2008 R2 एंटरप्राइज मशीन पर RAM, CPU, डिस्क, आदि के साथ चल रहा है।
प्रत्येक वेब अनुरोध के साथ, ASP.NET एप्लिकेशन बैकएंड वेब सेवा (कच्चे सॉकेट के माध्यम से) के लिए एक कनेक्शन बनाता है, जो एक ही मशीन पर चल रहा है।
समस्या: बैकएंड वेब सेवा के साथ-साथ कनेक्शन के # को सीमित करने के लिए कुछ प्रतीत होता है। संदेहास्पद रूप से, समवर्ती कनेक्शनों की संख्या 16 में सबसे ऊपर है।
मुझे यह समझ में आया कि Microsoft का यह महत्वपूर्ण लेख एएसपी.नेट ऐप्स को जोड़ने के लिए IIS की सेटिंग्स को समझने के लिए समझाता है जो बहुत सारे वेब सेवा अनुरोध करते हैं: http://support.microsoft.com/?id=821268#tocHeadRef
मैंने लेख की अनुशंसा का पालन किया, लेकिन फिर भी कोई भाग्य नहीं। सेटिंग जो विशेष रूप से दिलचस्प है वह maxconnection
सेटिंग है, जिसे मैंने 999 पर भी टक्कर दी।
किसी भी विचार और क्या कनेक्शन गला घोंटना हो सकता है?
नोट: जब मैं मिक्स से आईआईएस काटता हूं और क्लाइंट्स सीधे बैकएंड वेब सेवा से जुड़ते हैं, तो यह खुशी से उतने कनेक्शन खोलेगा जितने की मुझे जरूरत है, इसलिए मैं सकारात्मक हूं कि बैकेंड टोंटी नहीं है। यह IIS / ASP.NET- भूमि में कुछ होना चाहिए।
यहाँ प्रासंगिक अनुभाग है machine.config
जिसके बारे में मुझे यकीन है कि आवेदन द्वारा पढ़ा जा रहा है (इसके साथ सत्यापित appcmd.exe
):
<system.web>
<processModel autoConfig="false" maxWorkerThreads="100" maxIoThreads="100" minWorkerThreads="50" />
<httpRuntime minFreeThreads="176" minLocalRequestFreeThreads="152"/>
<httpHandlers />
<membership>
<providers>
<add name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LocalSqlServer"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
applicationName="/"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="7"
minRequiredNonalphanumericCharacters="1"
passwordAttemptWindow="10"
passwordStrengthRegularExpression="" />
</providers>
</membership>
<profile>
<providers>
<add name="AspNetSqlProfileProvider" connectionStringName="LocalSqlServer" applicationName="/"
type="System.Web.Profile.SqlProfileProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</profile>
<roleManager>
<providers>
<add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/"
type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add name="AspNetWindowsTokenRoleProvider" applicationName="/"
type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
</system.web>
<system.net>
<connectionManagement>
<add address="*" maxconnection="999"/>
</connectionManagement>
</system.net>