Веб-сайт Azure(aspnetcore) отключается от клиентов с медленной сетью
У меня есть веб-сайт aspnetcore, размещенный на Azure. На сайте есть метод mvc для загрузки zip-файлов на лету.
Вот пример метода, идея очень проста:
[Authorize(Roles = Roles.Supplier)]
[HttpGet("Download/{orderId}")]
public async Task<IActionResult> DownloadAsync(int? orderId)
{
if (orderId == null)
{
return NotFound();
}
var order = await _context.Orders.Where(w=>w.id == orderId);
if (order == null)
{
return NotFound();
}
var filesToZip = GetFilepathInZip(order.Details);
return new FileCallbackResult(new MediaTypeHeaderValue("application/octet-stream"),
async (outputStream, _) =>
{
using (var zipArchive = new ZipArchive(new WriteOnlyStreamWrapper(outputStream), ZipArchiveMode.Create))
{
foreach (var kvp in filesToZip)
{
var zipEntry = zipArchive.CreateEntry(kvp.PathInZip, CompressionLevel.NoCompression);
using (var zipStream = zipEntry.Open())
using (var m = new MemoryStream())
using (var fileStream = new FileStream(kvp.PathAtServer, FileMode.Open))
{
await fileStream.CopyToAsync(zipStream);
}
}
}
})
{
FileDownloadName = string.Format("Archive_{0}.zip", order.Id)
};
}
Каждый раз, когда я использую медленное соединение Wi-Fi для загрузки файла, разрывается соединение с сервером, и я получаю испорченный файл.
Но при быстром подключении по локальной сети эта проблема не возникала.
Нет проблем в понимании приложения. Я использую общую инфраструктуру.
Что бы это могло быть?
1 ответ
Проблема заключалась в том, что Kestrel MinResponseDataRate
https://github.com/aspnet/KestrelHttpServer/issues/2171
Ошибка соединения между HttpClient и веб-службой ASP.NET Core 2.0