下列建議將協助您使用 中包含的 System.Net 類別,以發揮其最佳優勢:
如需傳輸層安全性 (TLS) 最佳做法,請參閱 使用 .NET Framework 的傳輸層安全性 (TLS) 最佳做法。
使用 HttpClient 來傳送 HTTP 要求,而不是使用 WebRequest,後者在 .NET 6 中已經過時。 在 .NET Framework 中,每次您需要傳送要求時,建立新的
HttpClient
實例。 (.NET 5+/.NET Core 的指導方針比較細微。如需詳細資訊,請參閱 使用 HttpClient 的指導方針。)撰寫 ASP.NET 使用
System.Net
類別在伺服器上執行的應用程式時,最好從效能的觀點來看,使用異步方法 SendAsync ,而不是 Send。開啟至因特網資源的連線數目可能會對網路效能和輸送量產生重大影響。 System.Net 預設會為每個主機的每個應用程式使用兩個連線。 ConnectionLimit為您的應用程式設定 中的 ServicePoint 屬性,可能會增加特定主機的這個數目。 ServicePointManager.DefaultPersistentConnectionLimit設定 屬性可以增加所有主機的這個預設值。
在撰寫套接字層級協議時,請儘量使用TcpClient或UdpClient,而非直接寫入Socket。 這兩個客戶端類別封裝了 TCP 和 UDP 套接字的建立,無需您處理連線的細節。
存取需要認證的網站時,請使用 CredentialCache 類別來建立認證快取,而不是為每個要求提供認證。 CredentialCache 類別會搜尋快取,以尋找適當的認證以附在要求中,讓您不需要負責根據 URL 建立和呈現認證。