Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En Linux, los procesos sin privilegios no pueden enviar paquetes IP sin procesar. La funcionalidad de Ping se implementa mediante la interfaz con la utilidad ping
. Sin embargo, esta utilidad no admite la especificación de una carga personalizada para los paquetes de ping del Protocolo de mensajes de control de Internet (ICMP). .NET 7 agrega una comprobación para estos casos y produce una excepción si se especifica una carga personalizada.
Comportamiento anterior
En versiones anteriores, la carga del paquete ping se omitió silenciosamente (es decir, no se envió) en procesos de Linux sin privilegios.
Nuevo comportamiento
A partir de .NET 7, se produce una excepción PlatformNotSupportedException si intenta enviar una carga de paquete ping personalizada al ejecutarse en un proceso de Linux sin privilegios.
Versión introducida
.NET 7
Tipo de cambio disruptivo
Este cambio puede afectar a la compatibilidad binaria.
Motivo del cambio
Es mejor indicar al usuario que la operación no se puede realizar en lugar de quitar silenciosamente la carga.
Acción recomendada
Si se necesita una carga de ping, ejecute la aplicación como root
, o conceda la cap_net_raw
capacidad usando la utilidad setcap
.
De lo contrario, use una sobrecarga de Ping.SendPingAsync que no acepte una carga personalizada o pase una matriz vacía.
Las APIs afectadas
- System.Net.NetworkInformation.Ping.Send(IPAddress, Int32, Byte[], PingOptions)
- System.Net.NetworkInformation.Ping.Send(IPAddress, Int32, Byte[])
- System.Net.NetworkInformation.Ping.Send(String, Int32, Byte[], PingOptions)
- System.Net.NetworkInformation.Ping.Send(String, Int32, Byte[])
- System.Net.NetworkInformation.Ping.SendAsync(IPAddress, Int32, Byte[], PingOptions, Object)
- System.Net.NetworkInformation.Ping.SendAsync(IPAddress, Int32, Byte[], Object)
- System.Net.NetworkInformation.Ping.SendAsync(String, Int32, Byte[], PingOptions, Object)
- System.Net.NetworkInformation.Ping.SendAsync(String, Int32, Byte[], Object)
- System.Net.NetworkInformation.Ping.SendPingAsync(IPAddress, Int32, Byte[], PingOptions)
- System.Net.NetworkInformation.Ping.SendPingAsync(IPAddress, Int32, Byte[])
- System.Net.NetworkInformation.Ping.SendPingAsync(String, Int32, Byte[], PingOptions)
- System.Net.NetworkInformation.Ping.SendPingAsync(String, Int32, Byte[])