System.Net 类的最佳实践
以下建议有助于你充分利用 System.Net 中包含的类:
对于传输层安全性 (TLS) 最佳做法,请参阅 .NET Framework 中的传输层安全性 (TLS) 最佳做法。
使用 HttpClient 发送 HTTP 请求,而不是 .NET 6 中已过时的 WebRequest。 在 .NET Framework 中,可在每次需要发送请求时创建新的
HttpClient
。 (.NET 5+/.NET Core 的指南更加细致入微。有关详细信息,请参阅使用 HttpClient 的指南。)用
System.Net
类编写在服务器上运行的 ASP.NET 应用程序时,从性能的角度来看,使用异步方法 SendAsync 而不是 Send 通常会更好。对 Internet 资源开放的连接数会对网络性能和吞吐量产生显著的影响。 默认情况下,System.Net 在每个主机的每个应用程序中使用两个连接。 为应用程序在 ServicePoint 中设置 ConnectionLimit 属性,可为特定主机增加此连接数。 设置 ServicePointManager.DefaultPersistentConnectionLimit 属性可为所有主机提高此默认设置。
编写套接字级别协议时,尝试尽可能使用 TcpClient 或 UdpClient 编写,而不是直接写入 Socket 中。 这两个客户端类封装了 TCP 和 UDP 套接字的创建,因此无需处理此连接的详细信息。
若要访问需要凭据的站点,请使用 CredentialCache 类创建凭据缓存,而非为每个站点提供请求。 使用 CredentialCache 类可搜索缓存,查找符合请求的合适凭据,如此,你便无需基于 URL 创建和提供凭据。