共用方式為


Linux 上的自訂 Ping 承載

在 Linux 上,未獲授權的流程無法傳送原始 IP 封包。 Ping 功能必須藉由連接 ping 公用程式來實作。 不過,此公用程式並不支援指定網際網路控制訊息通訊協定 (ICMP) ping 封包的自訂承載。 .NET 7 會新增這類案例的檢查,並在指定自訂承載時擲回例外狀況。

先前的行為

在舊版中,ping 封包承載會在未獲授權的 Linux 流程中以無訊息方式忽略 (也就是說,不會傳送它)。

新的行為

從 .NET 7 開始,如果您嘗試在未獲授權的 Linux 流程中傳送自訂 ping 封包承載,就會擲回 PlatformNotSupportedException

導入的版本

.NET 7

中斷性變更的類型

這項變更會影響二進位相容性

變更原因

最好是向使用者發出訊號,指出無法執行作業,而不是以無訊息方式卸除承載。

如果需要 Ping 承載,請以 root 身分執行應用程式,或使用 setcap 公用程式授與 cap_net_raw 功能權限。

否則,請使用 Ping.SendPingAsync 的多載,不接受自訂承載或傳入空陣列。

受影響的 API