Почему Kestrel отключается при загрузке изображения?C#

Место общения программистов C#
Ответить
Anonymous
 Почему Kestrel отключается при загрузке изображения?

Сообщение Anonymous »

Я использую API .net 8 с EFCore, MariaDb, SixLabors.ImageSharp 3.1.5 во внепроцессном IIS в Plesk. Я настроил глобальное промежуточное программное обеспечение для обработки исключений, и оно вызывается перед конечными точками.

Код: Выделить всё

var app = builder.Build();
app.UseExceptionHandler("/error");

if (app.Environment.IsProduction())
{
app.UseHsts();
}
else
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();

app.MapControllers();
Моя проблема заключается в том, что для изображения my, nice, image.jpg каждый раз, когда я загружаю его из браузера на базе Chromium или Gecko на рабочем сервере, я вижу что приложение закрывается. Для меня это очень странно, потому что
  • кажется, загрузка и ответ возобновляются с того места, на котором они остановились.
  • все это происходит менее чем за секунду, и я знаю, что запуск сервера занимает больше времени.
  • это не происходит в локальной среде или во время интеграционного тестирования.
  • даже если я переименую изображение, сообщение «приложение закрывается...» останется.
Вот журнал с включенной отладкой:

Код: Выделить всё

(Mmt.Api.Services.Image.ImageCleanupService) [00:47:29 DBG ] Resized image my, nice, image.jpg
(Mmt.Api.Services.Image.ImageOperationsService) [00:47:31 DBG ] Connection id "0HN8QVRQ03JUP" accepted.
(Microsoft.AspNetCore.Server.Kestrel.Connections) [00:47:31 DBG ] Connection id "0HN8QVRQ03JUP" started.
(Microsoft.AspNetCore.Server.Kestrel.Connections) [00:47:31 INF ] Request starting HTTP/1.1 POST http://127.0.0.1:25260/iisintegration - null 0
(Microsoft.AspNetCore.Hosting.Diagnostics) [00:47:31 INF ] Application is shutting down...
(Microsoft.Hosting.Lifetime) [00:47:31 DBG ] Hosting stopping
(Microsoft.Extensions.Hosting.Internal.Host) [00:47:31 DBG ] Connection id "0HN8QVRQ03JUP" completed keep alive response.
(Microsoft.AspNetCore.Server.Kestrel.Connections) [00:47:31 INF ] Request finished HTTP/1.1 POST http://127.0.0.1:25260/iisintegration - 202 0 null 1.7087ms
(Microsoft.AspNetCore.Hosting.Diagnostics) [00:47:31 DBG ] Connection id "0HN8QVRQ03JUP" disconnecting.
(Microsoft.AspNetCore.Server.Kestrel.Connections) [00:47:31 DBG ] Connection id "0HN8QVRQ03JUP" stopped.
(Microsoft.AspNetCore.Server.Kestrel.Connections) [00:47:31 DBG ] Connection id "0HN8QVRQ03JUP" sending FIN because: "The Socket transport's send loop completed gracefully."
(Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets) [00:47:35 INF ] Uploaded image D:\vhosts\mmt\uploads\images\2024-12\my-nice-image-qfrckw.webp
(Mmt.Api.Services.Image.ImageOperationsService) [00:47:35 DBG ] Created thumb for my, nice, image.jpg
(Mmt.Api.Services.Image.ImageOperationsService) [00:47:35 INF ] Uploaded image D:\vhosts\mmt\uploads\thumbs\2024-12\my-nice-image-qfrckw.webp
Итак, мой вопрос соответствует заголовку: почему приложение закрывается во время загрузки этого изображения?

Чтобы быть более конкретным:
  • Могу ли я что-то неправильно настроить в Plesk при настройке вне процесса? Если да, то почему приложение закрывается только во время загрузки этого изображения?
  • Известно ли это исключение для ImageSharp? Если да, то почему это не улавливается глобальным промежуточным программным обеспечением для обработки исключений? Это часть запроса, и если это необработанное исключение, оно должно появиться там.
  • Это нормальное поведение Kestrel? Если да, то почему это происходит только с этим изображением?
Если вам понадобятся фрагменты кода, дайте мне знать.

Подробнее здесь: https://stackoverflow.com/questions/792 ... g-an-image
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»