SendFile genera NotSupportedException per i socket senza connessione
Il comportamento della famiglia di metodi SendFile per i socket senza connessione (ad esempio UDP) è ora coerente in tutte le piattaforme. I metodi interessati ora generano NotSupportedException su tutte le piattaforme.
Comportamento precedente
In precedenza, per Socket senza connessione (ad esempio UDP), sono stati osservati i comportamenti seguenti:
- SendFile ha generato NotSupportedException in Windows, ma non su piattaforme simili a Unix.
- ValueTask restituito da SendFileAsync ha archiviato SocketException in tutte le piattaforme.
- Chiamando EndSendFile su un IAsyncResult restituito da BeginSendFile ha generato SocketException su tutte le piattaforme.
Nuovo comportamento
A partire da .NET 8, per una connessione Socket senza connessione (ad esempio UDP), vengono osservati i comportamenti seguenti:
- SendFile genera NotSupportedException su tutte le piattaforme.
- ValueTask restituito da SendFileAsync archivia NotSupportedException in tutte le piattaforme.
- Chiamando EndSendFile su un IAsyncResult restituito da BeginSendFile genera NotSupportedException su tutte le piattaforme.
Versione introdotta
.NET 8 RC 1
Tipo di modifica che causa un'interruzione
Questa è una modifica funzionale.
Motivo della modifica
Dato che SendFile
in genere viene usato con grandi quantità di dati, non ha senso usarlo con socket senza connessione. Inoltre, il comportamento precedente era incoerente, generando SocketException
su alcune piattaforme e andando a buon fine su altre con un risultato imprevedibile.
Azione consigliata
Non usare metodi SendFile
per i socket senza connessione.