Развертывание IdentityServer4 Quickstart для веб-приложения Azure возвращает 404 на странице индекса, но другие маршруты работают - PullRequest
0 голосов
/ 17 декабря 2018

Я развернул проект, созданный на основе быстрого запуска от identityserver4 (https://github.com/IdentityServer/IdentityServer4.Demo).. Он прекрасно работает, пока я запускаю его локально, но при развертывании его в Azure страница индекса возвращает 404, но когдаЯ вручную перехожу на другие маршруты (например, "/ account / login"), они работают как положено.

My Startup.cs:

using System;
using System.Linq;
using System.Threading.Tasks;
using LunchBucks.Auth.Extensions;
using LunchBucksEncryption;
using LunchBucksEncryption.PasswordHashing;
using LunchBucksEncryption.SaltGeneration;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;

namespace LunchBucks.Auth
{
    public class Startup
    {
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddTransient<ISaltGeneration, SaltGeneration>();
            services.AddTransient<IPasswordHashing, PasswordHashing>();
            services.AddTransient<IEncryptionManagement, EncryptionManagement>();
            services.AddMvc();

            services.AddIdentityServer()
                .AddDeveloperSigningCredential()
                .AddInMemoryApiResources(ApiResourceExtensions.GetApiResources())
                .AddInMemoryClients(ClientExtensions.GetClients())
                .AddInMemoryIdentityResources(ClientExtensions.GetIdentityResources())
                .AddLunchBucksUserStore();

            services.AddCors(options =>
            {
                options.AddPolicy("default", policy =>
                {
                    policy.WithOrigins("http://localhost:3000")
                        .AllowAnyHeader()
                        .AllowAnyMethod();
                    policy.WithOrigins("https://lunchbucks-frontend.azurewebsites.net")
                        .AllowAnyHeader()
                        .AllowAnyMethod();
                });
            });
        }

        // 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();
            }
            app.UseCors("default");

            app.UseIdentityServer();

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

Program.cs:

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();
}

Документы Azure Web App по умолчанию: enter image description here

Вся структура папок приложений MVC с контроллерами и представлениями идентична быстрому запуску.

Понятия не имеючто здесь не так, так как работает локально, поэтому любая помощь будет признательна :) Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Я выяснил, в чем проблема - просто я просто не обращал внимания.Это находится в контроллере для домашней страницы, когда вы по какой-то причине просто загружаете быстрый старт: enter image description here Приносим извинения за неудобства и спасибо за вашу помощь:)

0 голосов
/ 17 декабря 2018

Скорее всего, это связано с неправильной настройкой перенаправления https.Проблема в том, что нет порта https по умолчанию.Быстрое решение заключается в добавлении этой строки:

services.AddHttpsRedirection(options => options.HttpsPort = 443);

Пожалуйста, прочитайте документацию для получения дополнительной информации.

...