简体   繁体   English

在 Azure 的 ASP.NET Core 3.1 应用程序中获取 swagger-ui 返回 404

[英]Fetching swagger-ui returns 404 in a ASP.NET Core 3.1 app in Azure

When loading the /swagger/index.html page the browser can't find the swagger-ui resources required when deployed to an App Servicce in Azure, returning 404. It works when running locally.加载/swagger/index.html页面时,浏览器找不到部署到Azure中的App Servicce所需的swagger-ui资源,返回404。本地运行时有效。 My setup is:我的设置是:

  services.AddSwaggerGen(options =>
  {
      options.SwaggerDoc("v1", new OpenApiInfo
      {
          Title = "Nexus WebApp",
          Version = "v1"
      });
      options.CustomSchemaIds(type => type.ToString());
               
  });
 var builder = endpoints.CreateApplicationBuilder();

 builder.UseSwagger();

 builder.UseSwaggerUI(options =>
 {
     options.SwaggerEndpoint("/swagger/v1/swagger.json", "Nexus WebApp");
 });

 var pipeline = builder.Build();

 endpoints.Map("/swagger", pipeline)
     .RequireAuthorization(new AuthorizeAttribute());
 endpoints.Map("/swagger/index.html", pipeline)
     .RequireAuthorization(new AuthorizeAttribute());
 endpoints.Map("/swagger/{documentName}/swagger.json", pipeline)
     .RequireAuthorization(new AuthorizeAttribute());

I've tried with a relative path fro the swagger endpoint like so ..\swagger\v1/swagger.json , I've tried specifying a RoutePrefix all to no avail unfortunately.我已经尝试使用 swagger 端点的相对路径,例如..\swagger\v1/swagger.json ,不幸的是,我尝试指定一个 RoutePrefix 都无济于事。 I'm aware similar questions have been asked but unfortunately none seem to help.我知道有人问过类似的问题,但不幸的是,似乎没有任何帮助。

Does anyone have any clues?有没有人有任何线索?

Update更新

These are the resources it is returning 404 for:这些是它返回 404 的资源:

  • https://{domain}/swagger/swagger-ui.css https://{domain}/swagger/swagger-ui.css
  • https://{domain}/swagger/swagger-ui-standalone-preset.js https://{domain}/swagger/swagger-ui-standalone-preset.js
  • https://{domain}/swagger/swagger-ui-bundle.js https://{domain}/swagger/swagger-ui-bundle.js

I suspect, your implementation is wrong.我怀疑,你的实现是错误的。 Here is the complete Startup code for setting up Swagger UI in NET Core:以下是在 NET Core 中设置 Swagger UI 的完整Startup代码:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Swashbuckle.AspNetCore.Swagger;
namespace IDGSwaggerDemo
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }
        public IConfiguration Configuration { get; }
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion
            (CompatibilityVersion.Version_2_2);   
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info
                {
                    Version = "v1",
                    Title = "Swagger Demo",
                    Description = "Swagger Demo for ValuesController",
                    TermsOfService = "None",
                    Contact = new Contact() { Name = "Joydip Kanjilal",
                    Email = "joydipkanjilal@yahoo.com",
                    Url = "www.google.com"
                }
                });
            });
        }
        public void Configure(IApplicationBuilder app,
       IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            app.UseMvc();
            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "v1");
            });
        }
    }
}

Check out this tutorial for more enhanced Swagger implementation.查看教程以了解更多增强的 Swagger 实现。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 将 ASP.NET CORE 3.1 MVC 应用程序部署到 azure 时出现问题 - Problem deploying ASP.NET CORE 3.1 MVC app to azure Swagger 不工作 Asp.net 内核如何打开 swagger ui - Swagger is not Working Asp.net Core how to open swagger ui 在 Azure 应用服务中的 ASP.NET Core 3.1 应用上调用 TryUpdateModelAsync 超时 - Timeout calling TryUpdateModelAsync on ASP.NET Core 3.1 app in Azure App Service 如何为 ASP.NET Core 3.1 配置 Azure App Service 应用程序设置? - How to configure Azure App Service application settings for ASP.NET Core 3.1? 基本容器化 ASP.NET 3.1 核心应用部署到 Azure ACI 失败 - Basic containerised ASP.NET 3.1 Core app deployment to Azure ACI fails Swagger UI 响应示例 Asp.Net Core Web Api - Swagger UI Response Example Asp.Net Core Web Api Cutomize Swagger UI ASP.NET核心Web API - Cutomize Swagger UI ASP.NET Core Web API ASP.NET Core 3.1 Azure AD 身份验证抛出 OptionsValidationException - ASP.NET Core 3.1 Azure AD Authentication throws OptionsValidationException 将我的应用程序迁移到 ASP.NET Core 3.0 后,之前有效的索引 URL 返回 404 - After migrating my app to ASP.NET Core 3.0, the previously valid Index URL returns 404 通过 ftp 将 asp net core 3.1 应用程序部署到 azure - Deploy asp net core 3.1 app into azure throught ftp
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM