Bu sınırlama ne # eşzamanlı bağlantı ASP.NET benim uygulama bir web hizmetine yapabilir?
ASP.NET 4.0 RAM, CPU, disk, dolusu ile 64-bit Windows Server üzerinde IIS 7.5 üzerinde 2008 R2 Enterprise makine çalışan uygulama vs. var.
Her web isteği ile, ASP.NET uygulama aynı makine üzerinde çalışan bir arka uç web service (ham yuva), bir bağlantı yapar.
Sorun:Bir sınırlama var gibi gözüküyor # arka uç web servisi. aynı anda bağlantı Şüpheli bir şekilde, eş zamanlı bağlantı sayısı 16 tepesi.
Microsoft'un bu anahtar madde' ayarlar web hizmet istekleri bir sürü yapmak ASP.NET uygulamalar karşılamak için: http://support.microsoft.com/?id=821268#tocHeadRef . IIS oynamak için nasıl açıklayan bulundu
Makalenin recommendatinos, ama yine de hiç şans takip ettim. Özellikle ilginç bu ayarı ben bile 999 çarptı maxconnection
ayar budur.
Ne herhangi bir fikirbaşkabağlantıları azaltma olabilir mi?
Not:Ne zaman kestim IIS out mix ve müşterilerinizi doğrudan bağlanmak için arka uç web hizmet edecek mutlu bir şekilde açık olarak birçok bağlantı olarak ihtiyacım var, bu yüzden ben pozitif uç değil darboğaz. Bir IIS/ASP olmalı.NET-arazi.
İşte bu uygulama (appcmd.exe
ile doğrulanmadı) tarafından okunan eminim machine.config
ilgili bölüm:
<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>
CEVAP
Cevaplar burada verilen çoğu sayısını adresigelen isteklerisizin arka uç için Java eklentisi, sayısı değilgiden istekleriarka uç hizmetinize ASP.NET uygulamanız yapabilirsiniz.
Oranı burada isteğinizi azaltma olduğunu arka uç Java eklentisi değil, çağıran uygulama aynı bitiş noktasına kurmak için istekli olduğunu açık bağlantı (aynı URL) sayısıdır.
Makineniz için aşağıdaki yapılandırma bölümüne ekleyerek bu sınırlama kaldırabilirsiniz.yapılandırma dosyası:
<configuration>
<system.net>
<connectionManagement>
<add address="*" maxconnection="65535"/>
</connectionManagement>
</system.net>
</configuration>
Eğer 50 veya 100 eşzamanlı bağlantı olarak isterseniz tabii ki daha makul bir sayı tut. Ama yukarıda max kadar açık olacak. Ayrıca daha yukarıda açık limit kuralı için belirli bir adresi belirtmek '* tüm adresleri gösterir'.
MSDN Documentation for System.Net.connectionManagement
Another Great Resource for understanding ConnectManagement in .NET
Bu senin sorununu çözer umarım!
DÜZENLEME:Oops, yönetim kodunda belirtilen bağlantıyı yukarıda sahip görüyorum. Aynı sorun ile gelecek soruşturmacıların ilgili olarak bilgi yukarıda benim bırakacağım. Ancak, unutmayınşu anda 4 farklı makine var.güncel çoğu config dosyaları sunucuları!
Var .NET Çerçeve v2 32-bit ve 64-bit altında hem de çalışan olarak .NET Çerçeve v4 de 32-bit ve 64-bit altında çalışıyor. Uygulamanız için seçtiğiniz ayarlara bağlı olarak bu 4 farklı makine herhangi birini kullanıyor olabilir havuzu.dosyaları config! Tüm 4 makine kontrol edin.config genellikle burada bulunan dosyaları:
- C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG
- C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG
- C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config
Nasıl UseEmbeddedHttpServer doğru 2 ka...
Nasıl benim C için bir ürün anahtarı o...
Benim C sunucusunun IP adresini almak ...
Nasıl benim uygulama bir web sayfası a...
Uygulama kimliği ve gizli anahtarı ben...