C# ASP.NET Core 2 Web API文件下载速度慢

C# ASP.NET Core 2 Web API文件下载速度慢,c#,asp.net-core-webapi,C#,Asp.net Core Webapi,我比较了从网络共享复制文件和使用.NET Core 2控制台应用程序从ASP.NET Core Web API下载文件。我的API只是红隼;没有IIS。它是带有新控制器的默认“新ASP.NET核心Web API”项目。没有特殊设置 API版本需要1000-1500ms才能十次(同时)下载相同的21MB文件,而文件共享版本需要不到500ms的时间。对于API版本,它复制的文件甚至存储在我的本地驱动器上 我惊讶地发现API版本慢了很多。我觉得我一定做错了什么。我怎样才能使它更快 public

我比较了从网络共享复制文件和使用.NET Core 2控制台应用程序从ASP.NET Core Web API下载文件。我的API只是红隼;没有IIS。它是带有新控制器的默认“新ASP.NET核心Web API”项目。没有特殊设置

API版本需要1000-1500ms才能十次(同时)下载相同的21MB文件,而文件共享版本需要不到500ms的时间。对于API版本,它复制的文件甚至存储在我的本地驱动器上

我惊讶地发现API版本慢了很多。我觉得我一定做错了什么。我怎样才能使它更快

    public static async Task CopyFileAsync(string sourceFile, string destinationFile)
    {
        if (File.Exists(destinationFile))
            File.Delete(destinationFile);
        using (var sourceStream = new FileStream(sourceFile, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, FileOptions.Asynchronous | FileOptions.SequentialScan))
        using (var destinationStream = new FileStream(destinationFile, FileMode.CreateNew, FileAccess.Write, FileShare.None, 4096, FileOptions.Asynchronous | FileOptions.SequentialScan))
        {
            await sourceStream.CopyToAsync(destinationStream);
        }
    }
vs

公共静态异步任务GetFileHttpAsync(字符串源URL,字符串目标文件)
{
if(File.Exists(destinationFile))
文件.Delete(destinationFile);
使用(HttpClient=new HttpClient())
使用(HttpResponseMessage response=wait client.GetAsync(“http://localhost:56845/api/att/"))
使用(HttpContent=response.content)
使用(FileStream destinationStream=newfilestream(destinationFile,FileMode.CreateNew,FileAccess.Write,FileShare.None,4096,FileOptions.Asynchronous | FileOptions.SequentialScan))
{
等待响应.Content.CopyToAsync(destinationStream);
返回true;
}
}
和我的控制器:

    [HttpGet]
    public async Task<IActionResult> Get()
    {
        var stream = new FileStream("C:\\Users\\Jon\\Attachments\\4.PDF", FileMode.Open, FileAccess.Read, FileShare.Read, 4096, FileOptions.Asynchronous | FileOptions.SequentialScan);
        return File(stream, "application/octet-stream", "4.pdf");
    }
[HttpGet]
公共异步任务Get()
{
var stream=new FileStream(“C:\\Users\\Jon\\Attachments\\4.PDF”,FileMode.Open,FileAccess.Read,FileShare.Read,4096,FileOptions.Asynchronous | FileOptions.SequentialScan);
返回文件(流,“应用程序/八位字节流”,“4.pdf”);
}
    [HttpGet]
    public async Task<IActionResult> Get()
    {
        var stream = new FileStream("C:\\Users\\Jon\\Attachments\\4.PDF", FileMode.Open, FileAccess.Read, FileShare.Read, 4096, FileOptions.Asynchronous | FileOptions.SequentialScan);
        return File(stream, "application/octet-stream", "4.pdf");
    }