Asp.Net Core с Swagger: ответ 404 для swagger.json без ошибокC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Asp.Net Core с Swagger: ответ 404 для swagger.json без ошибок

Сообщение Anonymous »


Получение распространенной ошибки «статус ответа 404 https://localhost:7247/swagger/v1/swagger.json» на моей странице Swagger.

Если я вручную открою и посещу страницу, я не получу никаких ошибок Asp.Net, я также получу ответ 404.

Большинство примеров этой проблемы содержат ошибки, отображаемые в консоли, которые можно устранить, чтобы исправить отсутствие создания файла swagger.json.

В моем случае при запуске приложения Asp.Net Core в терминале не отображается никаких ошибок.

При работе с net7.0 большинство моих пакетов nuget имеют версию 7.0.12

У меня определены только 2 контроллера, и отключение их обоих через настройки компиляции не решает эту проблему, поэтому я не верю, что проблема вызвана неправильной настройкой маршрута контроллера.

Мой файл Program.cs выглядит следующим образом:

public static async Task Main(string[] args) { вар строитель = WebApplication.CreateBuilder(args); вар конфигурации = ОбеспечениеConfig (строитель); builder.Services.AddDbContext(параметры => { options.UseNpgsql(config.Database.ConnectionString); }); ОбеспечитьIdentity (строитель, конфигурация); builder.Services.AddControllers(); если (builder.Environment.IsDevelopment()) { ОбеспечитьSwagger (строитель); //Точка останова здесь срабатывает } builder.Services.AddBusinessServices(); вар приложение = builder.Build(); используя (varscope = app.Services.CreateScope()) { var dbInitService =scope.ServiceProvider.GetRequiredService(); ждут dbInitService.InitAsync(); } app.UseHttpsRedirection(); если (app.Environment.IsDevelopment()) { приложение.UseSwagger(); //Точка останова здесь срабатывает app.UseSwaggerUI(); } приложение.UseAuthentication(); приложение.UseAuthorization(); приложение.UseStaticFiles(); приложение.MapControllers(); app.MapFallbackToFile("index.html"); ожидайте app.RunAsync(); } частный статический NotesConfig SureConfig (построитель WebApplicationBuilder) { var config = builder.Configuration.Get() ?? выдать новое исключение ConfigurationErrorsException( «Неверная конфигурация, проверьте целостность конфигурации» ); конфигурация.Проверить(); builder.Services.AddSingleton(конфигурация); вернуть конфигурацию; } частная статическая пустота SureSwagger (построитель WebApplicationBuilder) { builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(параметры => { options.SwaggerDoc("Примечания", новый() { Описание = "Открыть документацию API для Notes v1", Заголовок = "Примечания", Версия = "v1", Контакт = новый() { Электронная почта = "steffen@technically.fun", Имя = "Стеффен Блейк", Url = новый Uri("https://technically.fun"), } }); options.AddSecurityDefinition("Носитель", новый() { В = МестоположениеПараметра.Заголовок, Описание = "Пожалуйста, вставьте JWT с носителем в поле", BearerFormat = "Носитель ", Имя = "Авторизация", Тип = SecuritySchemeType.ApiKey }); options.AddSecurityRequirement(новый OpenApiSecurityRequirement { { новая схема OpenApiSecurityScheme { Ссылка = новая ссылка OpenApiReference { Тип = ТипСсылки.Схема Безопасности, Идентификатор = "Носитель" } }, // области видимости новая строка[] { } } }); }); } Private static void SureIdentity (построитель WebApplicationBuilder, конфигурация NotesConfig) { строитель.Услуги .AddDefaultIdentity(параметры => { options.Lockout = config.Identity.Lockout; options.Password = config.Identity.Password; options.SignIn = config.Identity.SignIn; options.User = config.Identity.User; }) .AddRoles() .AddEntityFrameworkStores(); builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(варианты => { ключ var = Encoding.UTF8.GetBytes(config.Signing.JWTSecret); options.TokenValidationParameters = новый() { ValidateIssuer = правда, Валидатаудиенс = правда, ValidateLifetime = правда, ValidateIssuerSigningKey = true, ValidIssuer = NotesConstants.JWT_ISSUER, ValidAudience = NotesConstants.JWT_ISSUER, IssuerSigningKey = новый SymmetricSecurityKey (ключ) }; }); } Я предполагаю, что это один из сценариев «Вы объявили регистрации в своих службах или приложении немного в неправильном порядке, поэтому это молча привело к сбою», поэтому я перевернул порядок объявлений, чтобы посмотреть, исправит ли это ситуацию. но пока безрезультатно.

Возможно также, что какая-то часть моей конфигурации Swagger неверна и, я полагаю, приводит к ее незаметному сбою?
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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