Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O comportamento da SendFile família de métodos para soquetes sem conexão (por exemplo, UDP) agora é consistente em todas as plataformas. Os métodos afetados agora geram uma NotSupportedException em todas as plataformas.
Comportamento anterior
Anteriormente, para um Socket sem ligação (por exemplo, UDP), os seguintes comportamentos foram observados:
- SendFile lançou um NotSupportedException no Windows, mas não em plataformas semelhantes a Unix.
- O ValueTask proveniente de SendFileAsync armazenou um SocketException para todas as plataformas.
- Chamar EndSendFile em um IAsyncResult retornado de BeginSendFile gerou um SocketException em todas as plataformas.
Novo comportamento
A partir do .NET 8, para uma Socket sem conexão (por exemplo, UDP), são observados os seguintes comportamentos:
- SendFile lança um NotSupportedException em todas as plataformas.
- O ValueTask retornado de SendFileAsync armazena um NotSupportedException em todas as plataformas.
- Ao chamar EndSendFile em um IAsyncResult retornado de BeginSendFile, lança um NotSupportedException em todas as plataformas.
Versão introduzida
.NET 8 RC 1
Tipo de mudança disruptiva
Esta alteração é de natureza comportamental .
Motivo da mudança
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 foi inconsistente, lançando SocketException em algumas plataformas, enquanto funcionava em outras, resultando em um desfecho imprevisível.
Ação recomendada
Não use SendFile métodos para soquetes sem conexão.