Отладчик Visual Studio аварийно завершает работу при выборе IFormFile в пользовательском интерфейсе Swagger.C#

Место общения программистов C#
Anonymous
Отладчик Visual Studio аварийно завершает работу при выборе IFormFile в пользовательском интерфейсе Swagger.

Сообщение Anonymous »

Я использую API ASP.NET в Visual Studio. У меня есть конечная точка для загрузки файла с помощью IFormFile.

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

[HttpPost(Name = "AddDocument")]
[ProducesResponseType(StatusCodes.Status200OK)]
public async Task AddDocument([FromForm] AddDocumentRequest file, CancellationToken token)
{
await _documentService.AddDocument(file.File, token)
}
Модель параметров:

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

public class AddDocumentRequest
{
[Required]
public required IFormFile File { get; set; }
}
Конечная точка работает нормально, если я запускаю конечную точку без отладки. Это также работает, когда я использую Postman.
Если я запускаю API с отладкой и пытаюсь выбрать файл в форме пользовательского интерфейса Swagger, API немедленно завершает работу еще до того, как конечная точка будет достигнута, без каких-либо ошибок в окне вывода.
Код swagger в program.cs:

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

builder.Services.AddSwaggerGen(options =>
{
options.SwaggerDoc("default", new OpenApiInfo { Title = "Public endpoints", Version = "v1" });
options.IncludeXmlComments(Path.Combine(System.AppContext.BaseDirectory, "SwaggerAnnotations.xml"));
options.IncludeXmlComments(Path.Combine(System.AppContext.BaseDirectory, "SwaggerAnnotationsBL.xml"));

options.DocInclusionPredicate((docName, apiDesc) =>
{
var categories = apiDesc.ActionDescriptor
.EndpointMetadata.OfType()
.FirstOrDefault()?.Categories;

return docName switch
{
"default" => true,
_ => false
};
});

options.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme,
Id = "Bearer"
}
},
Array.Empty()
}
});
options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
Name = "Authorization",
In = ParameterLocation.Header,
Scheme = "Bearer",
Type = SecuritySchemeType.Http
});

options.SchemaFilter();
options.DocumentFilter();
options.SchemaFilter
();
});

app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint("/swagger/default/swagger.json", "Public Endpoints");
});
app.UseSwagger();
app.MapOpenApi();
Есть идеи, что является причиной этого?

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