Partilhar via


<elemento socket> (Definições de Rede)

Especifica se as operações de socket utilizam portas de conclusão.

<configuração>
  <system.net>
    <definições>
      <socket>

Syntax

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

Atributos e Elementos

As secções seguintes descrevem atributos, elementos subordinados e elementos principais.

Atributos

Atributo Descrição
alwaysUseCompletionPortsForAccept Indica se o socket deve utilizar sempre portas de conclusão para Aceitar chamadas de método. O valor predefinido é false.
alwaysUseCompletionPortsForConnect Indica se o socket deve utilizar sempre portas de conclusão para chamadas do método Connect. O valor predefinido é false.
ipProtectionLevel Especifica a predefinição System.Net.Sockets.IPProtectionLevel a utilizar para um socket. O valor predefinido depende da versão do Windows.

Elementos Subordinados

Nenhum.

Elementos Principais

Elemento Descrição
definições Configura as opções de rede básicas para o System.Net espaço de nomes.

Observações

Os alwaysUseCompletionPortsForAccept atributos e alwaysUseCompletionPortsForConnect são utilizados para especificar o comportamento predefinido relativamente à utilização de portas de conclusão pelas classes no System.Net.Sockets.namespace. As portas de conclusão são recomendadas para aplicações de servidor de alto desempenho.

O valor predefinido para os alwaysUseCompletionPortsForAccept atributos e alwaysUseCompletionPortsForConnect é falso.

Pode AlwaysUseCompletionPortsForAccept ser utilizado para obter o valor atual do atributo a alwaysUseCompletionPortsForAccept partir de ficheiros de configuração aplicáveis. Pode AlwaysUseCompletionPortsForConnect ser utilizado para obter o valor atual do atributo a alwaysUseCompletionPortsForConnect partir de ficheiros de configuração aplicáveis.

O ipProtectionLevel atributo especifica a predefinição System.Net.Sockets.IPProtectionLevel a utilizar para um socket. A IPProtectionLevel propriedade permite a configuração de uma restrição para um socket IPv6 para um âmbito especificado, como endereços com a mesma ligação local ou prefixo local do site. Esta opção permite que as aplicações coloquem restrições de acesso em sockets IPv6. Estas restrições permitem que uma aplicação em execução numa LAN privada se proteja de forma simples e robusta contra ataques externos. Esta opção alarga ou restringe o âmbito de um socket de escuta, permitindo o acesso sem restrições de utilizadores públicos e privados, quando adequado, ou restringindo o acesso apenas ao mesmo site, conforme necessário.

Esta ipProtectionLevel definição de atributo afeta apenas o tráfego de entrada inicial:

  • Um servidor TCP a escutar ligações recebidas num socket.

  • Uma aplicação UDP a receber um pacote num socket.

Esta definição de configuração não afeta as ligações TCP já estabelecidas (o tráfego está sem restrições em ambas as direções) e não afeta uma aplicação que envia pacotes UDP.

Os valores possíveis para a definição do ipProtectionLevel atributo correspondem aos níveis de proteção definidos especificados na enumeração da System.Net.Sockets.IPProtectionLevel seguinte forma:

Valor do Atributo Descrição
EdgeRestricted O nível de proteção de IP é restrito. Este valor seria utilizado por aplicações concebidas para operar na Internet. Esta definição não permite o percurso de Tradução de Endereços de Rede (NAT) através da implementação do Windows Teredo. Estas aplicações podem ignorar firewalls IPv4, pelo que as aplicações têm de ser protegidas contra ataques da Internet direcionados para a porta aberta. No Windows Server 2003 e Windows XP, o valor predefinido para o nível de Proteção IP num socket é restrito.
Restrito O nível de proteção de IP é restrito. Este valor seria utilizado por aplicações intranet que não implementam cenários de Internet. Geralmente, estas aplicações não são testadas ou endurecidas contra ataques ao estilo da Internet. Esta definição irá limitar o tráfego recebido apenas para link-local.
Sem restrição O nível de proteção de IP não tem restrições. Este valor seria utilizado por aplicações concebidas para operar em toda a Internet, incluindo aplicações que tiram partido das capacidades de percurso NAT IPv6 incorporadas no Windows (Teredo, por exemplo). Estas aplicações podem ignorar firewalls IPv4, pelo que as aplicações têm de ser protegidas contra ataques da Internet direcionados para a porta aberta. No Windows Server 2008 R2 e no Windows Vista, o valor predefinido para o nível de Proteção IP num socket não tem restrições.
Não especificado O nível de proteção de IP não é especificado. No Windows 7 e Windows Server 2008 R2, o valor predefinido para o nível de Proteção IP num socket não é especificado.

O valor predefinido para o ipProtectionLevel atributo é Não especificado.

A IPProtectionLevel propriedade pode ser utilizada para obter o valor atual do atributo a ipProtectionLevel partir de ficheiros de configuração aplicáveis.

Ficheiros de Configuração

Este elemento pode ser utilizado no ficheiro de configuração da aplicação ou no ficheiro de configuração do computador (Machine.config).

Exemplo

O exemplo seguinte mostra como especificar que as portas de conclusão devem ser utilizadas e que a predefinição System.Net.Sockets.IPProtectionLevel deve ser sem restrições.

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

Ver também