PRB: IMAP bağlantı sınırını artırmak sonra bir anonim bağlantı noktası üzerinden bağlanmaya çalıştığınızda "WSAEADDRESSINUSE" hata iletisi

Belirtiler

IMAP bağlantı sınırını artırın ve çok düşük bir MailboxCacheTTL ayarı ile yapılandırılmış bir Microsoft TV posta hizmeti IMAP sunucusuna bağlanmayı deneyin, "WSAEADDRESSINUSE" hata iletisi alıyorsunuz (hata kodu: 10048).

Neden

Bu davranış bir birleşimini aşağıdaki nedeniyle oluşur:
  • Varsayılan olarak, Windows 2000 alan adsız bağlantı noktaları için sınırlıdır. Bu alan Microsoft TV posta hizmeti için yapılandırılmış düşük MailboxCacheTTL daha sınırlıdır. (Anonim bağlantı noktaları, bilgisayarın IP yığını tarafından atanan geçici bağlantı noktalarıdır; anonim bağlantı noktalarına atanan bağlantı noktası aralığındaki atanır. Yalnızca 1024-5000 arasındaki bağlantı noktalarını Windows 2000'de kullanılır.)
  • Yuva hemen kapatılmasını sonra tekrar kullanılamaz için yuva SO_REUSEADDR seçeneği açıktır, değil. Yuva için dört dakika TIME_WAIT durumunda ayrılmış olarak kalmalıdır. SO_REUSEADDR seçeneği ayarlarsanız, Windows birden fazla bağlar dinleme yuva için izin verir.
Anonim (kısa ömürlü bağlantı noktası) bağlantı noktası aralığı, tek bir bilgisayardan uzak bir bilgisayardaki belirli bir hizmet bağlantı sayısının üst sınırını belirler. TCP/IP iletişim kuralı ağ bağlantısının 4-dizi (sunucu IP ve sunucu bağlantı noktası, istemci IP ve istemci bağlantı noktası) arasında bağlantılar; ayırt etmek için kullanır. anonim bağlantı noktası aralığı yalnızca 4000 bağlantı noktaları geniş olup olmadığını (yaklaşık), olabilir yalnızca bir istemci bilgisayardan uzak bir hizmet için 4000 benzersiz bağlantıları aynı anda.


Bağlantı sona erdiğinde, kısa ömürlü bağlantı noktaları tüm havuzu kullanılıncaya kadar çoğu IP yığını o bağlantı noktası numarasını tekrar kullanmayın rağmen kısa ömürlü bağlantı noktası yeniden kullanılmak üzere kullanılabilir. Bu nedenle, istemci istemci programı bağlanırsa, yeni bağlantı için istemci tarafı bir farklı kısa ömürlü bağlantı noktası numarası atanır. Çünkü IMAP bağlantıları sık (hemen hemen her istek) kapatıp Microsoft TV posta hizmeti söz konusu olduğunda, durum çok düşük bir MailboxCacheTTL ayarı aggravates.


Bağlantı noktası aralığı 4000 büyük görünebilir, ancak gerçekten tamamlanmadan önce bir TCP bağlantısı TIME_WAIT durumunda sona olduğunu göz önüne aldığınızda geçerli bilgisayar işlemleriniz için küçük. Örneğin, iki tarafına bağlantı TCP'ın hata kontrolü nedeniyle düzgün kendi bağlantı ucunun kapatmak olsa bile, her iki tarafı TIME_WAIT durumunda bağlantının kaynakları gerçekten dönüşüme gönderilebilir önce süresi dolmuş kadar beklemesi gerekir.


TIME_WAIT durumunda en fazla kesim ömrünün iki katı (MSL) ' dir. (Bu nedenle, kapatıldığı sırada TIME_WAIT durumunda da 2MSL durumu denir.) Genellikle, IP yığını bağlı olarak kapatıldığı sırada TIME_WAIT durumunda toplam 240 saniye olarak yapılandırılır. Bu nedenle, 240 ikinci pencere yalnızca 4000 bağlantısı olabilir ve pratikte bu 4000 bağlantılar kullanılabilir.

Çözüm

Bu davranışı önlemek için aşağıdakilerden birini yapın:
  • MaxUserPort kayıt defteri anahtarını değiştirerek anonim bağlantı noktaları yaklaşık 20.000 bağlantı noktalarına (örneğin) için kullanılan bağlantı noktası aralığını artırın. Windows, anonim (geçici) bağlantı noktası aralığı için 1024-5000 Geleneksel BSD aralığını kullanır. Kısa ömürlü bağlantı noktası aralığı yalnızca üst sınırını belirleyebilirsiniz. MaxUserPort kayıt defteri anahtarını değiştirmek için şu adımları izleyin:


    1. Kayıt Defteri Düzenleyicisi'ni (Regedt32.exe) başlatın.
    2. MaxUserPort anahtarı kayıt defterinde bulun:


      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    3. Düzen menüsünde, Değer Ekle'yi tıklatın ve sonra aşağıdaki kayıt defteri değerini ekleyin:


      Değer adı: MaxUserPort
      Veri Türü: REG_DWORD
      Değer: 65534 (örneğin)
      Geçerli aralık: 5000-65534 (ondalık)
      Varsayılan: 0x1388 (5000 ondalık)
    4. Kayıt Defteri Düzenleyicisi'nden çıkın.
    Açıklama: Bu parametre, bir uygulama sistemden herhangi kullanılabilir bir kullanıcı bağlantı noktası istediğinde kullanılan en yüksek bağlantı noktası numarasını denetler. Genellikle kısa ömürlü (diğer bir deyişle, süreli) değerlerin 1024 ile 5000 (dahil) arasında bağlantı noktası ayrılır.


    - veya -
  • 240 bağlantılarında zaman aşımını değiştirmek saniye (varsayılan) herhangi bir uzunlukta den 300 saniye 30 saniye. Bu değeri değiştirmek için TcpTimedWaitDelay kayıt defteri parametresini kullanın. Bunu yapmak için Kayıt Defteri Düzenleyicisi'ni (Regedt32.exe) başlatın, kayıt defterinde aşağıdaki anahtarı bulun ve sonra değeri değiştirin:


    HKEY_LOCAL_MACHINE\System\CurrectControlSet\services\Tcpip\Parameters



    TcpTimedWaitDelay


    Anahtar: Tcpip\Parameters

    Değer türü: REG_DWORD-saniye olarak zaman

    Geçerli aralık: 30-300 (ondalık)

    Varsayılan: 0xF0 (240 ondalık)


    Açıklama: Bu parametre bağlantı kapalı olduğunda bir bağlantı TIME_WAIT durumunda kalacağı süreyi belirler. Bağlantı TIME_WAIT durumundayken, yuva çifti yeniden kullanılamaz. Daha fazla bilgi için bkz: RFC 793.
Not: MailboxCacheTTL ayarı çok düşük ise, bu sorun daha da kötüsü yapılır. Daha önce açıklanan kayıt defteri değişiklikleri yaptıktan sonra sorun devam ederse, posta kutusu TTL MailboxCacheTTL SiteConfig.cfg dosyası (Microsoft sunucu yüklemesi için yapılandırma dosyası) ayarlarını değiştirerek artırın.

Daha fazla bilgi

Varsayılan anonim bağlantı noktası aralığını artırma hakkında ek bilgi için Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:

196271 5000 TCP bağlantı noktalarından bağlanılamıyor
149532 Windows NT istemcileri noktalarının çalıştırın.
Özellikler

Makale No: 319502 - Son İnceleme: 24 Şub 2017 - Düzeltme: 1

Geri bildirim