Freigeben über


<socket>-Element (Netzwerkeinstellungen)

Gibt an, ob Socketvorgänge Abschlussanschlüsse verwenden.

<socket
  alwaysUseCompletionPortsForConnect="true|false"
  alwaysUseCompletionPortsForAccept="true|false"
  ipProtectionLevel ="EdgeRestricted|Restricted|Unrestricted|Unspecified"
/socket>

Attribute und Elemente

In den folgenden Abschnitten werden Attribute, untergeordnete Elemente und übergeordnete Elemente beschrieben.

Attribute

Attribute

Beschreibungen

alwaysUseCompletionPortsForAccept

Gibt an, ob der Socket stets Abschlussanschlüsse für Accept-Methodenaufrufe verwenden soll. Der Standardwert ist false.

alwaysUseCompletionPortsForConnect

Gibt an, ob der Socket stets Abschlussanschlüsse für Connect-Methodenaufrufe verwenden soll. Der Standardwert ist false.

ipProtectionLevel

Gibt den Standardwert für die System.Net.Sockets.IPProtectionLevel an, die für ein Socket verwendet werden soll. Der Standardwert hängt von der Version von Windows ab.

Untergeordnete Elemente

Keine.

Übergeordnete Elemente

Element

Beschreibungen

<settings>

Konfiguriert grundlegende Netzwerkoptionen für den System.Net-Namespace.

Hinweise

Das alwaysUseCompletionPortsForAccept-Attribut und das alwaysUseCompletionPortsForConnect-Attribut werden verwendet, um das Standardverhalten gegenüber der Verwendung von Abschlussanschlüssen durch die Klassen im System.Net.Sockets anzugeben. Namespace Abschlussanschlüsse werden für Hochleistungs-Serveranwendungen empfohlen.

Der Standardwert für das alwaysUseCompletionPortsForAccept-Attribut und das alwaysUseCompletionPortsForConnect-Attribut ist false.

AlwaysUseCompletionPortsForAccept kann verwendet werden, um den aktuellen Wert des alwaysUseCompletionPortsForAccept-Attributs aus anwendbaren Konfigurationsdateien abzurufen. AlwaysUseCompletionPortsForConnect kann verwendet werden, um den aktuellen Wert des alwaysUseCompletionPortsForConnect-Attributs aus anwendbaren Konfigurationsdateien abzurufen.

Das ipProtectionLevel-Attribut gibt die Standardeinstellung für System.Net.Sockets.IPProtectionLevel an, die für ein Socket verwendet werden soll. Die IPProtectionLevel-Eigenschaft ermöglicht das Konfigurieren einer Einschränkung eines IPv6-Sockets auf einen angegebenen Bereich, z. B. Adressen mit demselben linklokalen oder standortlokalen Präfix. Diese Option ermöglicht es Anwendungen, Zugriffsbeschränkungen für IPv6-Sockets festlegen. Mit solchen Einschränkungen kann sich eine im privaten LAN ausgeführte Anwendung selbst einfach und stabil vor externen Angriffen schützen. Diese Option erweitert oder beschränkt den Bereich eines lauschenden Sockets und ermöglicht so bei Bedarf den uneingeschränkten Zugriff von öffentlichen und privaten Benutzern oder beschränkt den Zugriff nur auf denselben Standort.

Diese ipProtectionLevel-Attributeinstellung wirkt sich nur auf den ursprünglichen eingehenden Datenverkehr aus:

  • Ein TCP-Server, der auf eingehende Verbindungen auf einem Socket lauscht.

  • Eine UDP-Anwendung, die auf einem Socket ein Paket empfängt.

Diese Konfigurationseinstellung wirkt sich nicht auf bereits hergestellte TCP-Verbindungen aus (der Datenverkehr ist in beiden Richtungen uneingeschränkt), und auch nicht auf eine Anwendung, die UDP-Pakete sendet.

Die möglichen Werte für die ipProtectionLevel-Attributeinstellung entsprechen den definierten Schutzebenen, die in der System.Net.Sockets.IPProtectionLevel-Enumeration wie folgt angegeben werden:

Attributwert

Beschreibungen

EdgeRestricted

Die IP-Schutzebene ist auf den Netzwerk-Edge beschränkt. Dieser Wert wird von Anwendungen verwendet, die für den Betrieb über das Internet konzipiert sind. Diese Einstellung lässt die NAT-Überquerung (Netzwerkadressenübersetzung) mithilfe der Windows Teredo-Implementierung nicht zu. Diese Anwendungen können IPv4-Firewalls umgehen und müssen daher vor Internetangriffen auf den geöffneten Anschluss geschützt werden. Unter Windows Server 2003 und Windows XP ist der Standardwert für die IP-Schutzebene für einen Socket "EdgeRestricted".

Restricted

Die IP-Schutzebene ist eingeschränkt. Dieser Wert wird von Intranetanwendungen verwendet, die keine Internetszenarios implementieren. Diese Anwendungen werden im Allgemeinen nicht getestet oder vor Internetangriffen geschützt. Diese Einstellung beschränkt den empfangenen Datenverkehr auf linklokalen Datenverkehr.

Uneingeschränkt

Die IP-Schutzebene ist nicht eingeschränkt. Dieser Wert wird von Anwendungen verwendet, die für den Betrieb über das Internet konzipiert sind. Dazu zählen Anwendungen, die in Windows integrierte IPv6-NAT-Überquerungsfunktionen nutzen (z. B. Teredo). Diese Anwendungen können IPv4-Firewalls umgehen und müssen daher vor Internetangriffen auf den geöffneten Anschluss geschützt werden. Unter Windows Server 2008 R2 und Windows Vista ist der Standardwert für die IP-Schutzebene für einen Socket "Unrestricted".

Nicht angegeben

Die IP-Schutzebene ist nicht angegeben. Unter Windows 7 und Windows Server 2008 R2 ist der Standardwert für die IP-Schutzebene für einen Socket "Unspecified".

Der Standardwert für das ipProtectionLevel-Attribut ist Unspecified.

Die IPProtectionLevel-Eigenschaft kann verwendet werden, um den aktuellen Wert des ipProtectionLevel-Attributs aus anwendbaren Konfigurationsdateien abzurufen.

Konfigurationsdateien

Dieses Element kann in der Konfigurationsdatei der Anwendung oder in der Konfigurationsdatei des Computers (Machine.config) verwendet werden.

Beispiel

Das folgende Codebeispiel zeigt, wie Sie angeben können, dass Abschlussanschlüsse verwendet werden sollen und dass die Standardeinstellung für System.Net.Sockets.IPProtectionLevel unbeschränkt sein soll.

<configuration>
  <system.net>
    <settings>
      <socket
        alwaysUseCompletionPortsForAccept="true"
        alwaysUseCompletionPortsForConnect="true"
        ipProtectionLevel="Unrestricted"
       />
    </settings>
  </system.net>
</configuration>

Siehe auch

Referenz

Netzwerkeinstellungsschema

System.Net

System.Net.Configuration.SocketElement

System.Net.Sockets

System.Net.Sockets.IPProtectionLevel

SocketOptionName.IPProtectionLevel