Swagger не отображается в Azure - PullRequest
0 голосов
/ 12 октября 2019

У меня есть следующий файл запуска:

    public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<CookiePolicyOptions>(options =>
        {
            // This lambda determines whether user consent for non-essential cookies is needed for a given request.
            options.CheckConsentNeeded = context => true;
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });


        services.AddMvc()
            .AddFluentValidation()
            .SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

        services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new Info
            {
                Title = "Name Application Api",
                Version = "v1",
                Contact = new Contact
                {
                    Name = "A B",
                    Email = "email@email.com"
                }
            });

            c.DescribeAllEnumsAsStrings();
            c.DescribeStringEnumsInCamelCase();

            //c.OperationFilter<SwaggerAuthResponsesOperationFilter>();

            // Set the comments path for the Swagger JSON and UI.
            var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
            var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
            c.IncludeXmlComments(xmlPath);

            // enable the annotations on Controller classes [SwaggerTag]
            c.EnableAnnotations();
        });

        services.AddMvcCore().AddApiExplorer();
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
            // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
            app.UseHsts();
        }

        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseCookiePolicy();

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });

        app.UseSwagger();

        // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.), 
        // specifying the Swagger JSON endpoint.
        app.UseSwaggerUI(c =>
        {
            c.SwaggerEndpoint("/swagger/v1/swagger.json", "Support Application API V1");
            c.DocumentTitle = "Support Application Api";
        });
    }

Он работает нормально, когда я пытаюсь открыть swagger страницу на локальном https://localhost:44341/swagger/index.html Но когда я публикую его в Azure, я получаю

Эта страница не работает

drugalcohol.azurewebsites.net в настоящее время не может обработать этот запрос.

HTTP ERROR 500

СлужбаПлан - уровень цен B1.

Что не так?

1 Ответ

1 голос
/ 13 октября 2019

Кажется, что шаг генерации XML не настроен в вашем проекте, поэтому при выполнении строки кода c.IncludeXmlComments(xmlPath); приложение возвращает код состояния Http 500.

Чтобы сгенерировать комментарии XML, необходимо убедиться, что в свойстве сборки проекта установлен флажок «Файл документации XML».

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...