SendFile lança NotSupportedException para soquetes sem conexão
O comportamento da família de métodos SendFile para soquetes sem conexão (por exemplo, UDP) agora é consistente em todas as plataformas. Os métodos afetados agora lançam um NotSupportedException em todas as plataformas.
Comportamento anterior
Anteriormente, para um Socket sem conexão (por exemplo, UDP), os seguintes comportamentos eram observados:
- SendFile lançava um NotSupportedException no Windows, mas não em plataformas semelhantes ao Unix.
- O ValueTask retornado de um SendFileAsync armazenava um SocketException em todas as plataformas.
- Chamar EndSendFile um em um IAsyncResult retornado de BeginSendFile lançava um SocketException em todas as plataformas.
Novo comportamento
A partir do .NET 8, para um Socket sem conexão (por exemplo, UDP), os seguintes comportamentos são observados:
- SendFile lança um NotSupportedException em todas as plataformas.
- O ValueTask retornado de SendFileAsync armazena um NotSupportedException em todas as plataformas.
- Chamar um EndSendFile em um IAsyncResult retornado de BeginSendFile lança um NotSupportedException em todas as plataformas.
Versão introduzida
.NET 8 RC 1
Tipo de alteração interruptiva
Esta é uma alteração comportamental.
Motivo da alteração
Dado que SendFile
normalmente é usado com grandes quantidades de dados, não faz sentido usá-lo com soquetes sem conexão. Além disso, o comportamento anterior era inconsistente, lançando SocketException
em algumas plataformas, ao mesmo tempo em que tinha êxito em outras com um resultado imprevisível.
Ação recomendada
Não use métodos SendFile
para soquetes sem conexão.
APIs afetadas
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de