В настоящее время я занимаюсь разработкой. Net Core 3.1 Service с SwaggerUI. На самом деле я получаю ошибки в пользовательском интерфейсе Swagger:
Когда я смотрю в DevTools моего браузера, я вижу, что SwaggerUI делает следующий неправильный вызов:
Справочная информация: Моя служба размещается в качестве подстраницы на IIS. Поэтому я настроил Swagger следующим образом (Startup.cs):
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseHttpsRedirection()
.UseRouting()
.UseAuthentication()
.UseAuthorization()
.UseEndpoints(endpoints => endpoints.MapControllers())
.UseSwagger()
.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("./swagger/v1/swagger.json", ServiceConstants.ServiceDisplayName);
c.RoutePrefix = string.Empty;
});
}
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(IISDefaults.AuthenticationScheme);
services.Configure<IISOptions>(options =>
{
options.AutomaticAuthentication = true;
options.ForwardClientCertificate = true;
});
services.AddSwaggerGen(c => c.SwaggerDoc("v1", new OpenApiInfo { Title = ServiceConstants.ServiceDisplayName, Description = ServiceConstants.ServiceDescription, Version = "v1" }));
}
Я уже пробовал без относительного пути ./swagger/v1/swagger.json
, но это работает только локально. I .NetCore 2.1 У меня никогда не было такой проблемы.
Пример моего контроллера такой:
[Authorize, Route(nameof(AdminController))]
public class AdminController : Controller
{
[HttpPost, Route(nameof(ClearAllCaches))]
public void ClearAllCaches()
{
// Do Something
}
}
Я уже прочитал много возможных решений, но все они не будут работать с .NetCore 3.1. Я использую следующие NugetPackages для Swagger:
Сам Swagger работает нормально, но ошибки немного раздражают. У кого-нибудь есть подсказка?
Большое спасибо!