„SendFile“ löst für verbindungslose Sockets „NotSupportedException“ aus
Das Verhalten der SendFile-Methodenfamilie für verbindungslose (z. B. UDP)-Sockets ist jetzt auf allen Plattformen konsistent. Die betroffenen Methoden lösten nun NotSupportedException auf allen Plattformen aus.
Zuvor wurden für eine verbindungsloses Socket (z. B. UDP) die folgenden Verhaltensweisen beobachtet:
- SendFile löste einen NotSupportedException auf Windows aus, aber nicht auf Unix-ähnlichen Plattformen.
- Die von SendFileAsync zurückgegebene ValueTask speicherte eine SocketException auf allen Plattformen.
- Das Aufrufen von EndSendFile auf einer von BeginSendFile zurückgegebenen IAsyncResult löste einen SocketException auf allen Plattformen aus.
Ab .NET 8 werden für ein verbindungsloses Socket (z. B. UDP) die folgenden Verhaltensweisen beobachtet:
- SendFile löst eine NotSupportedException auf allen Plattformen aus.
- Die von SendFileAsync zurückgegebene ValueTask speicherte eine NotSupportedException auf allen Plattformen.
- Das Aufrufen von EndSendFile auf einer von BeginSendFile zurückgegebenen IAsyncResult löst einen NotSupportedException auf allen Plattformen aus.
.NET 8 RC 1
Diese Änderung ist eine Verhaltensänderung.
Da SendFile
in der Regel mit großen Datenmengen verwendet wird, ist es nicht sinnvoll, sie mit verbindungslosen Sockets zu verwenden. Darüber hinaus war das vorherige Verhalten inkonsistent, da auf einigen Plattformen SocketException
ausgelöst wurde, während auf anderen ein unvorhersehbares Ergebnis erfolgte.
Verwenden Sie keine SendFile
-Methoden für verbindungslose Sockets.
Feedback zu .NET
.NET ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben: