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.
El comportamiento de la SendFile familia de métodos para sockets sin conexión (por ejemplo, UDP) ahora es coherente en todas las plataformas. Los métodos afectados ahora inician una excepción NotSupportedException en todas las plataformas.
Comportamiento anterior
Anteriormente, para un Socket sin conexión (por ejemplo, UDP), se observaron los siguientes comportamientos:
- SendFile produjo una NotSupportedException en Windows, pero no en plataformas similares a Unix.
- El ValueTask devuelto de SendFileAsync almacenó un SocketException en todas las plataformas.
- Al llamar a EndSendFile en un IAsyncResult devuelto de BeginSendFile produjo una SocketException en todas las plataformas.
Nuevo comportamiento
A partir de .NET 8, para una conexión sin Socket (por ejemplo, UDP), se observan los siguientes comportamientos:
- SendFile produce una NotSupportedException en todas las plataformas.
- El ValueTask devuelto de SendFileAsync almacena un NotSupportedException en todas las plataformas.
- Al llamar a EndSendFile en un IAsyncResult devuelto de BeginSendFile produce una NotSupportedException en todas las plataformas.
Versión introducida
.NET 8 RC 1
Tipo de cambio disruptivo
Este es un cambio de comportamiento.
Motivo del cambio
Dado que SendFile
normalmente se usa con grandes cantidades de datos, no tiene sentido usarlo con sockets sin conexión. Además, el comportamiento anterior era incoherente, lo que generaba SocketException
en algunas plataformas, al tiempo que se ejecutaba correctamente en otros con un resultado imprevisible.
Acción recomendada
No utilice métodos SendFile
para sockets sin conexión.