本文介绍了当我从开发的值更改ASPNETCORE_ENVIRONMENT的变量时,Swagger页面不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个基于.NET6的Web API。 此Web API在Azure应用程序服务上运行。Azure应用服务在Linux上运行。
我使用Open API(Swagger)进行测试和文档编制。 我创建了2个应用程序设置文件。(开发和阶段)
我将ASPNETCORE_ENVIRONMENT变量添加到Azure应用服务的配置中,如下所示。函数用于ASPNETCORE_环境的两个变量(开发和阶段)。当我将‘Stage’值设置为ASPNETCORE_ENVIRONMENT时,Swagger页面不工作。它给出了404未找到错误。但它适用于开发。
以下是我的启动代码以炫耀配置;
public void ConfigureServices(IServiceCollection services) { services.AddCors(options => options.AddPolicy("AllowAnyOrigin", builder => { builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader(); })); services.AddControllers(); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "AllStore.Api", Version = "v1" }); var securitySchema = new OpenApiSecurityScheme { Description = "JWT Authorization header using the Bearer scheme. Example: "Authorization: Bearer {token}"", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey, Scheme = "bearer", Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }; c.AddSecurityDefinition("Bearer", securitySchema); var securityRequirement = new OpenApiSecurityRequirement { { securitySchema, new[] { "Bearer" } } }; c.AddSecurityRequirement(securityRequirement); }); }我真的不明白出了什么问题?有人能帮帮我吗?
推荐答案更改启动cs中的配置方法,如下所示
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILogger<Startup> logger) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseSwagger(); app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "AllStore.Api v1")); app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }而不是
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILogger<Startup> logger) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseSwagger(); app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "AllStore.Api v1")); } app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }更多推荐
当我从开发的值更改ASPNETCORE
发布评论