ASP. Net Core Identity Pages выдает ошибку 404 после развертывания на сервере, но работает нормально при размещении в локальном IIS - PullRequest
0 голосов
/ 28 мая 2020

Однажды после размещения проекта как в локальном IIS, так и на сервере я обнаружил, что на сервере все страницы, связанные с идентификацией, выдают ошибку 404, тогда как в локальном IIS все работает нормально. Все остальные страницы, кроме страниц удостоверений, доступны. Мой класс StartUp выглядит так:

publi c class Startup {publi c Startup (конфигурация IConfiguration) {Configuration = configuration; }

    public IConfiguration Configuration { get; }

    // This method gets called by the runtime. Use this method to add services to the container.
    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 => false;
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });


        services.AddSingleton<IFileProvider>(
        new PhysicalFileProvider(
            Path.Combine(Directory.GetCurrentDirectory(), "wwwroot")));


        var connectionString = this.Configuration.GetConnectionString("DefaultConnection");
        services.AddDbContext<ApplicationDbContext>(options =>
        {
            options.UseSqlServer(connectionString);
            options.UseLazyLoadingProxies(true);

        });
        //services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));

        services.AddDefaultIdentity<XonetPlus_V3.Entities.Domain.User>(options => options.SignIn.RequireConfirmedAccount = false)
        .AddRoles<IdentityRole>().AddDefaultUI()
        .AddEntityFrameworkStores<ApplicationDbContext>();




        services.AddDataProtection()
 .PersistKeysToFileSystem(new DirectoryInfo(@"c:\shared-auth-ticket-keys\"))
 .SetApplicationName("SharedCookieApp");

        services.ConfigureApplicationCookie(options => {
            options.Cookie.Name = ".AspNet.SharedCookie";
        });



        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
        services.AddTransient<IRepositoryWrapper, RepositoryWrapper>();
        services.AddScoped<IEmailSender, EmailSender>();
    }


    public void Configure(IApplicationBuilder app, IWebHostEnvironment env, UserManager<User> userManager, RoleManager<IdentityRole> roleManager)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
            app.UseHsts();
        }

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

        app.UseCookiePolicy();
        app.UseRouting();
        app.UseAuthentication();
        IdentityDataInitializer.SeedData(userManager, roleManager);
        app.UseAuthorization();
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllerRoute("default", "{controller=admindashboard}/{action=Index}/{id?}");
            // endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}");
            endpoints.MapControllerRoute("queryParams", "{controller=admindashboard}/{action=Index}/{param}/{id}");
            endpoints.MapControllerRoute("areas", "{area:exists}/{controller=admindashboard}/{action=Index}");
            endpoints.MapRazorPages();
        });

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