SORU
21 EKİM 2011, Cuma


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
26 EKİM 2011, ÇARŞAMBA


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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AndroidSale

    AndroidSale

    17 NİSAN 2011
  • esnathesinger

    esnathesinge

    6 NİSAN 2009
  • SDSARG3

    SDSARG3

    14 Mart 2009