PRB: "WSAEADDRESSINUSE" Fehlermeldung, wenn Sie versuchen, über einen anonymen Anschluss zu verbinden, nachdem Sie das IMAP-Verbindungslimit erhöhen

Problembeschreibung

Wenn Sie das IMAP-Verbindungslimit erhöhen und versuchen, IMAP-Server von einem Microsoft TV e-Mail-Dienst herzustellen, mit der Einstellung MailboxCacheTTL sehr niedrig konfiguriert ist, wird die Fehlermeldung "WSAEADDRESSINUSE" (Fehlercode: 10048).

Ursache

Dieses Verhalten tritt aufgrund der folgenden:
  • Standardmäßig hat Windows 2000 anonymen Ports begrenzt. Dieser Speicherplatz ist durch niedrige MailboxCacheTTL eingeschränkter, die für Microsoft TV Mail-Dienst konfiguriert ist. (Anonymen Ports sind temporäre Ports, die von einem Computer IP-Stapel zugewiesen, anonymen Ports in einem bestimmten Bereich von Ports zugewiesen werden. Nur Ports 1024-5000 werden in Windows 2000 verwendet.)
  • Die Option SO_REUSEADDR Sockets ist nicht eingeschaltet, damit unmittelbar nach dem Schließen der Sockets wiederverwendet werden können. Sockets müssen zu jedem für vier Minuten in einen TIME_WAIT-Status vorbehalten bleiben. Festlegen die Option SO_REUSEADDR ermöglicht Windows mehrere bindet an den überwachenden Socket.
Der anonyme Portbereich (temporärer Ports) beschränkt die maximale Anzahl von Verbindungen von einem Computer auf einen bestimmten Dienst auf einem Remotecomputer. Das TCP-Protokoll verwendet die Verbindung 4-Tupel (Server-IP-Serverport, Client-IP und ClientPort) unterscheiden zwischen; Wenn der anonyme Portbereich 4000 Ports breit ist (ungefähr) ist nur 4000 eindeutige Verbindung von einem Clientcomputer aus remote Service gleichzeitig.


Bei Beendigung der Verbindung steht temporärer Ports für Wiederverwendung, obwohl die meisten IP-Stacks nicht diese Portnummer wieder verwendet werden können, bis der gesamte Pool temporärer Ports verwendet wurde. Daher ist verbindet das Clientprogramm der Client eine andere flüchtigen Portnummer für den Client der neuen Verbindung zugewiesen. Bei Microsoft TV-Maildienst ärgert eine sehr niedrige Einstellung MailboxCacheTTL Situation IMAP-Verbindungen schließen und erneut öffnen häufig (für nahezu jede Anforderung).


Portbereich 4000 große mag es jedoch für computing Anforderungen bei eine TCP-Verbindung über TIME_WAIT-Status ungültig werden, bevor es wirklich abgeschlossen ist. Beispielsweise, wenn beide Seiten einer Verbindung ordnungsgemäß die Enden der Verbindung aufgrund des TCP-Fehlerkontrolle schließen, muss jeder Seite warten TIME_WAIT-Status ist abgelaufen, bevor die Verbindung Ressourcen wirklich freigegeben werden können.


TIME_WAIT-Status ist zweimal die maximale Segment-Gültigkeitsdauer (MSL). (Aus diesem Grund steht TIME_WAIT-Status auch 2MSL.) Normalerweise wird je nach der IP-Stapel TIME_WAIT-Zustand konfiguriert insgesamt 240 Sekunden. Daher können Sie nur 4000 Verbindungen pro Sekunde 240-Fenster und in der Praxis diese 4000 Verbindungen verwendet werden.

Problemlösung

Um dieses Verhalten zu verhindern, führen Sie eine der folgenden:
  • Erhöhen Sie den Portbereich (beispielsweise) anonymen Ports ca. 20.000 Ports verwendet wird durch Ändern des Registrierungsschlüssels "MaxUserPort" . Windows verwendet die konventionellen BSD 1024 und 5000 für die anonyme (temporären) Portbereich. Sie können nur die obere Grenze des Bereichs temporärer Ports festlegen. Gehen Sie folgendermaßen vor, um den Registrierungsschlüssel "MaxUserPort" zu ändern:


    1. Starten Sie Registrierungseditor (Regedt32.exe).
    2. Suchen Sie den MaxUserPort -Schlüssel in der Registrierung:


      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    3. Klicken Sie im Menü Bearbeiten auf Wert hinzufügenund fügen Sie den folgenden Registrierungswert hinzu:


      Wertname: MaxUserPort
      Datentyp: REG_DWORD
      Wert: 65534 (z.B.)
      Bereich gültig: 5000-65534 (dezimal)
      Standard: 0 x 1388 (5000 dezimal)
    4. Beenden Sie den Registrierungseditor.
    Beschreibung: dieser Parameter steuert die maximale Portnummer, die verwendet wird, wenn eine Anwendung einen verfügbaren Benutzeranschluss vom System anfordert. In der Regel flüchtigen (d. h. kurzlebige) Anschlüsse zwischen den Werten 1024 und 5000 (einschließlich) zugewiesen.


    – oder –
  • Ändern Sie das Zeitlimit für die Verbindung von 240 Sekunden (Standard) auf einen beliebigen Wert von 30 bis 300 Sekunden. Verwenden des Registrierungsparameters TcpTimedWaitDelay diesen Wert ändern. Dazu starten Sie den Registrierungseditor (Regedt32.exe) suchen Sie folgenden Schlüssel in der Registrierung und ändern Sie den Wert:


    HKEY_LOCAL_MACHINE\System\CurrectControlSet\services\Tcpip\Parameters



    TcpTimedWaitDelay


    Schlüssel: Tcpip\Parameters

    Typ: REG_DWORD-Zeit in Sekunden

    Bereich gültig: 30-300 (dezimal)

    Standard: 0xF0 (240 dezimal)


    Beschreibung: dieser Parameter gibt die Zeitdauer, die eine Verbindung im TIME_WAIT-Zustand bleibt, wenn die Verbindung geschlossen wird. Während eine Verbindung im TIME_WAIT-Zustand befindet, kann das Socketpaar wiederverwendet werden. Weitere Informationen finden Sie in RFC 793.
Hinweis: dieses Problem wird verschlimmert, wenn die Einstellung MailboxCacheTTL sehr gering ist. Wenn das Problem weiterhin besteht, nachdem Sie die Registrierung beschrieben ändern, erhöhen Sie das Postfach TTL durch Ändern der Einstellung MailboxCacheTTL in der SiteConfig.cfg-Datei (die Konfigurationsdatei für Microsoft Server-Installation).

Weitere Informationen

Weitere Informationen zum Erhöhen der anonymen Standardanschlussbereich finden Sie zu die Artikeln der Microsoft Knowledge Base:

196271 keine TCP-Ports 5000
149532 Windows NT-Clients nicht genügend Anschlüsse
Eigenschaften

Artikelnummer: 319502 – Letzte Überarbeitung: 16.01.2017 – Revision: 1

Feedback