SendFile lève NotSupportedException pour les sockets sans connexion
Le comportement de la famille de méthodes SendFile pour les sockets sans connexion (par exemple, UDP) est désormais cohérent sur toutes les plateformes. Les méthodes affectées lèvent désormais NotSupportedException sur toutes les plateformes.
Comportement précédent
Auparavant, pour un Socket sans connexion (par exemple, UDP), les comportements suivants étaient observés :
- SendFile levait NotSupportedException sur Windows, mais pas sur les plateformes de type Unix.
- ValueTask renvoyé par SendFileAsync stockait SocketException sur toutes les plateformes.
- L’appel de EndSendFile sur IAsyncResult renvoyé par BeginSendFile levait SocketException sur toutes les plateformes.
Nouveau comportement
Depuis .NET 8, pour un Socket sans connexion (par exemple, UDP), les comportements suivants sont observés :
- SendFile lève NotSupportedException sur toutes les plateformes.
- ValueTask renvoyé par SendFileAsync stocke NotSupportedException sur toutes les plateformes.
- L’appel de EndSendFile sur IAsyncResult renvoyé par BeginSendFile lève NotSupportedException sur toutes les plateformes.
Version introduite
.NET 8 RC 1
Type de changement cassant
Ce changement est un changement de comportement.
Raison du changement
Comme SendFile
est généralement utilisé avec de grandes quantités de données, il n’est pas nécessaire de l’utiliser avec des sockets sans connexion. Par ailleurs, le comportement précédent était incohérent, levant SocketException
sur certaines plateformes, tout en réussissant sur d’autres avec un résultat imprévisible.
Action recommandée
N’utilisez pas les méthodes SendFile
pour les sockets sans connexion.