SendFile이 연결 없는 소켓에 대해 NotSupportedException을 발생시킵니다.
비연결(예: UDP) 소켓에 대한 SendFile 메서드 계열의 동작이 이제 모든 플랫폼에서 일관됩니다. 이제 영향을 받는 메서드가 모든 플랫폼에서 NotSupportedException을 발생시킵니다.
이전 동작
이전에는 연결 없는 Socket(예: UDP)의 경우 다음 동작이 관찰되었습니다.
- SendFile이 Windows에서는 NotSupportedException을 발생시켰지만 Unix 계열 플랫폼에서는 발생하지 않았습니다.
- SendFileAsync에서 반환된 ValueTask는 모든 플랫폼에서 SocketException을 저장했습니다.
- BeginSendFile에서 반환된 IAsyncResult에서 EndSendFile을 호출하면 모든 플랫폼에서 SocketException이 발생했습니다.
새 동작
.NET 8부터 연결 없는 Socket(예: UDP)의 경우 다음 동작이 관찰됩니다.
- SendFile은 모든 플랫폼에서 NotSupportedException을 발생시킵니다.
- SendFileAsync에서 반환된 ValueTask는 모든 플랫폼에 NotSupportedException을 저장합니다.
- BeginSendFile에서 반환된 IAsyncResult에 대해 EndSendFile을 호출하면 모든 플랫폼에서 NotSupportedException이 발생합니다.
도입된 버전
.NET 8 RC 1
호환성이 손상되는 변경의 형식
이 변경 사항은 동작 변경입니다.
변경 이유
SendFile
은 일반적으로 대량의 데이터와 함께 사용되므로 연결 없는 소켓과 함께 사용하는 것은 의미가 없습니다. 또한 이전 동작은 일관되지 않아 일부 플랫폼에서는 SocketException
을 발생시키는 반면 다른 플랫폼에서는 성공하여 예측할 수 없는 결과를 가져왔습니다.
권장 작업
비연결 소켓에는 SendFile
메서드를 사용하지 마세요.
영향을 받는 API
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET