SendFile vyvolá výjimku NotSupportedException pro bezpočtové sokety
Chování SendFile rodiny metod pro bez připojení (například UDP) soketů je teď konzistentní na všech platformách. Ovlivněné metody teď hází na NotSupportedException všech platformách.
Předchozí chování
Dříve se u bezpojení Socket (například UDP) zjistilo následující chování:
- SendFile Hodil na NotSupportedException Windows, ale ne na platformách unixových.
- Vrácená ValueTask z SendFileAsync uloženého objektu SocketException na všech platformách.
- Volání EndSendFile na vrácený IAsyncResult z BeginSendFile hodil na SocketException všech platformách.
Nové chování
Počínaje rozhraním .NET 8 se pro připojení Socket (například UDP) pozorují následující chování:
- SendFile vyvolá na NotSupportedException všech platformách.
- Vrácená ValueTask z SendFileAsync úložišť na NotSupportedException všech platformách.
- Volání EndSendFile na vrácenou BeginSendFile chybu IAsyncResult vyvolá na NotSupportedException všech platformách.
Zavedená verze
.NET 8 RC 1
Typ zásadní změny
Tato změna je změna chování.
Důvod změny
Vzhledem k tomu, že se SendFile
obvykle používá s velkými objemy dat, nemá smysl ho používat se sokety bez připojení. Kromě toho bylo předchozí chování nekonzistentní, vyvolávání SocketException
na některých platformách a úspěšné na jiných s nepředvídatelným výsledkem.
Doporučená akce
Nepoužívejte SendFile
metody pro sokety bez připojení.