我目前有一个. NET 8 ASP.NET Core应用程序运行在我的PC上通过Kestrel和一个. NET for Android应用程序运行在我的物理设备上.
从移动应用程序,我试图上传一个大文件(~70 MB)到一个控制器使用流(更多信息,请参阅此:https://learn.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads?view=aspnetcore-8.0#upload-large-files-with-streaming),并模拟一个丢失的连接(我模拟这通过禁用物理设备上的Wi—Fi).
问题是,由HttpContext.RequestAborted
expose 的取消令牌没有被取消,使创建的文件锁定在文件系统上.代码如下:
await using var fileStream = IOFile.Create(filePath, bufferSize: 1024);
await fileSection.FileStream?.CopyToAsync(fileStream, HttpContext.RequestAborted);
注:只有在try 通过移动应用程序时才会出现此问题,当在同一台机器上执行Postman的相同测试时,ASP.NET Core应用程序正在运行取消令牌.
有没有人知道为什么 token 没有被取消?如果是:是否有解决办法?
先谢谢你.