<socket> 元素 (網路設定)

指定通訊端作業是否使用完成連接埠。

<configuration>
  <system.net>
    <settings>
      <socket>

Syntax

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

屬性和項目

下列章節說明屬性、子元素和父元素。

屬性

Attribute 說明
alwaysUseCompletionPortsForAccept 指出通訊端是否一律使用完成連接埠來進行 Accept 方法呼叫。 預設值是 false
alwaysUseCompletionPortsForConnect 指出通訊端是否一律使用完成連接埠來進行 Connect 方法呼叫。 預設值是 false
ipProtectionLevel 指定要用於通訊端的預設 System.Net.Sockets.IPProtectionLevel。 預設值取決於所用的 Windows 版本。

子元素

無。

父項目

Element 說明
設定 System.Net 命名空間設定基本的網路選項。

備註

alwaysUseCompletionPortsForAcceptalwaysUseCompletionPortsForConnect 屬性用來指定與 System.Net.Sockets 命名空間中的類別使用完成通訊埠有關的預設行為。 建議針對高效能伺服器應用程式使用完成連接埠。

alwaysUseCompletionPortsForAcceptalwaysUseCompletionPortsForConnect 屬性的預設值為 false

AlwaysUseCompletionPortsForAccept 可用於從適用的組態檔取得 alwaysUseCompletionPortsForAccept 屬性的目前值。 AlwaysUseCompletionPortsForConnect 可用於從適用的組態檔取得 alwaysUseCompletionPortsForConnect 屬性的目前值。

ipProtectionLevel 屬性指定要用於通訊端的預設 System.Net.Sockets.IPProtectionLevelIPProtectionLevel 屬性讓 IPv6 通訊端的組態限制在指定範圍,例如具有相同連結本機或網站本機前置詞的位址。 此選項可讓應用程式在 IPv6 通訊端上設置存取限制。 這類限制可以讓應用程式在私人 LAN 上執行,簡便又穩當地強化應用程式對外部攻擊的抵禦。 此選項可放大或縮小接聽通訊端的範圍,根據需要啟用公用和私用使用者的無限制存取,或視需要限制成僅可存取相同的站台。

ipProtectionLevel 屬性設定只會影響初始傳入流量:

  • 接聽通訊端上連入連線的 TCP 伺服器。

  • 在通訊端上接收封包的 UDP 應用程式。

此組態設定不會影響已建立的 TCP 連線 (流量在兩個方向皆不受限制),且不會影響傳送 UDP 封包的應用程式。

ipProtectionLevel 屬性設定的可能值會對應至 System.Net.Sockets.IPProtectionLevel 列舉中指定的已定義保護層級,如下所示:

屬性值 說明
EdgeRestricted IP 保護層級有臨界限制。 這個值將由設計在整個網際網路上操作的應用程式所使用。 此項設定不允許使用 Windows Teredo 實作來進行網路位址轉譯 (NAT) 周遊。 這些應用程式可能會略過 IPv4 防火牆,因此必須加強應用程式,以抵禦在開啟的通訊埠位置遭受的直接網路攻擊。 在 Windows Server 2003 和 Windows XP 環境下,通訊端 IP 保護層級的預設值有臨界限制。
Restricted IP 保護層級有限制。 這個值將由未實作網際網路案例的內部網路應用程式所使用。 這些應用程式通常不會就網路攻擊測試進行測試或是採取強化。 這個設定會將接收傳輸限制於僅連結和本機之間。
不受限制 IP 保護層級不受限制。 這個值將由設計在整個網際網路上操作的應用程式使用,包括發揮已內建在 Windows 之 IPv6 NAT 周遊功能的應用程式 (例如 Teredo)。 這些應用程式可能會略過 IPv4 防火牆,因此必須加強應用程式,以抵禦在開啟的通訊埠位置遭受的直接網路攻擊。 在 Windows Server 2008 R2 和 Windows Vista 環境下,通訊端 IP 保護層級的預設值不受任何限制。
[未指定] IP 保護層級尚未指定。 在 Windows 7 和 Windows Server 2008 R2 環境下,通訊端 IP 保護層級的預設值尚未指定。

ipProtectionLevel 屬性的預設值為 Unspecified

IPProtectionLevel 屬性可用於從適用的組態檔取得 ipProtectionLevel 屬性的目前值。

組態檔

此項目可以用於應用程式組態檔或電腦組態檔 (Machine.config)。

範例

下列範例示範如何指定應該使用完成連接埠,以及預設 System.Net.Sockets.IPProtectionLevel 應不受限制。

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

另請參閱