指定套接字作是否使用完成端口。
<配置>
<system.net>
<设置>
<插座>
Syntax
<socket
alwaysUseCompletionPortsForConnect="true|false"
alwaysUseCompletionPortsForAccept="true|false"
ipProtectionLevel="EdgeRestricted|Restricted|Unrestricted|Unspecified"
/>
特性和元素
下列各节描述了特性、子元素和父元素。
特性
| 属性 | 说明 |
|---|---|
alwaysUseCompletionPortsForAccept |
指示套接字是否应始终使用完成端口进行 Accept 方法调用。 默认值为 false。 |
alwaysUseCompletionPortsForConnect |
指示套接字是否应始终使用 Connect 方法调用的完成端口。 默认值为 false。 |
ipProtectionLevel |
指定用于套接字的默认值 System.Net.Sockets.IPProtectionLevel 。 默认值取决于 Windows 的版本。 |
子元素
没有。
父元素
| 元素 | 说明 |
|---|---|
| 设置 | 配置 System.Net 命名空间的基本网络选项。 |
注解
属性alwaysUseCompletionPortsForAcceptalwaysUseCompletionPortsForConnect用于指定有关 .namespace 中的System.Net.Sockets类使用完成端口的默认行为。 建议将完成端口用于高性能服务器应用程序。
属性的alwaysUseCompletionPortsForAcceptalwaysUseCompletionPortsForConnect默认值为 false。
AlwaysUseCompletionPortsForAccept可用于从适用的配置文件获取属性的alwaysUseCompletionPortsForAccept当前值。
AlwaysUseCompletionPortsForConnect可用于从适用的配置文件获取属性的alwaysUseCompletionPortsForConnect当前值。
该 ipProtectionLevel 属性指定用于套接字的默认值 System.Net.Sockets.IPProtectionLevel 。 该 IPProtectionLevel 属性允许将 IPv6 套接字的限制配置为指定范围,例如具有相同链接本地或站点本地前缀的地址。 此选项使应用程序能够对 IPv6 套接字施加访问限制。 此类限制使在专用 LAN 上运行的应用程序能够简单且可靠地强化自身免受外部攻击。 此选项可扩大或缩小侦听套接字的范围,在适当情况下启用对公共和专用用户的无限制访问,或根据需要仅限制对同一站点的访问。
此属性 ipProtectionLevel 设置仅影响初始传入流量:
侦听套接字上的传入连接的 TCP 服务器。
接收套接字上的数据包的 UDP 应用程序。
此配置设置不会影响已建立的 TCP 连接(流量不受双向限制),并且不会影响发送 UDP 数据包的应用程序。
属性设置的可能值 ipProtectionLevel 与枚举中指定的 System.Net.Sockets.IPProtectionLevel 定义保护级别相对应,如下所示:
| 属性值 | 说明 |
|---|---|
| EdgeRestricted | IP 保护级别受边缘限制。 此值将由旨在通过 Internet 运行的应用程序使用。 此设置不允许使用 Windows Teredo 实现进行网络地址转换(NAT)遍历。 这些应用程序可能会绕过 IPv4 防火墙,因此必须针对针对打开的端口的 Internet 攻击强化应用程序。 在 Windows Server 2003 和 Windows XP 上,套接字上的 IP 保护级别的默认值受到限制。 |
| 受限 | IP 保护级别受到限制。 此值将由不实现 Internet 方案的 Intranet 应用程序使用。 这些应用程序通常不会针对 Internet 样式的攻击进行测试或强化。 此设置将接收的流量限制为仅链接本地。 |
| 非受限 | IP 保护级别不受限制。 此值将由设计为通过 Internet 运行的应用程序使用,包括利用内置于 Windows 中的 IPv6 NAT 遍历功能的应用程序(例如 Teredo)。 这些应用程序可能会绕过 IPv4 防火墙,因此必须针对针对打开的端口的 Internet 攻击强化应用程序。 在 Windows Server 2008 R2 和 Windows Vista 上,套接字上的 IP 保护级别的默认值不受限制。 |
| 未指定 | 未指定 IP 保护级别。 在 Windows 7 和 Windows Server 2008 R2 上,未指定套接字上的 IP 保护级别的默认值。 |
属性的 ipProtectionLevel 默认值为 Unspecified。
该 IPProtectionLevel 属性可用于从适用的配置文件中获取属性的 ipProtectionLevel 当前值。
配置文件
此元素可用于应用程序配置文件或计算机配置文件(Machine.config)。
Example
以下示例演示如何指定应使用完成端口,以及默认值 System.Net.Sockets.IPProtectionLevel 应不受限制。
<configuration>
<system.net>
<settings>
<socket
alwaysUseCompletionPortsForAccept="true"
alwaysUseCompletionPortsForConnect="true"
ipProtectionLevel="Unrestricted"
/>
</settings>
</system.net>
</configuration>