502 Bad Gateway/сбой при вызове passwordsigninasync

Microsoft.AspNetCore.Identity.SignInResult loSignInResult = await base._oLoginManager.PasswordSignInAsync(loUser.UserName, lsPassword, true, false);

Это строка, которая вызывает сообщение 502 Bad Gateway.

См. программу запуска ниже (_bStaging имеет значение false, когда возникает эта ошибка). Я безуспешно пытался изменить порядок кода. Эта ошибка начала возникать на днях без существенного изменения кода. Никаких изменений на сервер не вносилось, и доступ есть только у меня.:

    public void ConfigureServices(IServiceCollection loServices)
    {
        try
        {
            if (!this._bIsStaging)
            {
                loServices.Configure<MvcOptions>(options =>
                {
                    options.Filters.Add(new RequireHttpsAttribute());
                });
            }
            loServices.AddSession();
            Heron.Data.Classes.ConnectionStrings._sHeronConnectionString = this._oConfiguration.GetConnectionString(this.GetConnectionStringName("Heron"));
            Heron.Data.Classes.ConnectionStrings._sIdentityConnectionString = this._oConfiguration.GetConnectionString(this.GetConnectionStringName("Identity"));
            loServices.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
            loServices.AddDbContext<Heron.Data.DB.HeronContext>(O => O.UseSqlServer(Heron.Data.Classes.ConnectionStrings._sHeronConnectionString));
            loServices.AddScoped<DbContext>(sp => sp.GetService<Heron.Data.DB.HeronContext>());
            loServices.AddDbContext<Heron.Data.DB.Extensions.IdentityExtend.DbContext>(O => O.UseSqlServer(Heron.Data.Classes.ConnectionStrings._sIdentityConnectionString));
            loServices.AddScoped<DbContext>(sp => sp.GetService<Heron.Data.DB.Extensions.IdentityExtend.DbContext>());
            loServices.AddIdentity<Heron.Data.DB.Extensions.IdentityExtend.User, Heron.Data.DB.Extensions.IdentityExtend.Role>(opts =>
            {
                opts.Lockout.DefaultLockoutTimeSpan = new TimeSpan(0, 0, Heron.Library.Classes.Constants._nDefaultLockoutTime, 0);
                opts.Lockout.MaxFailedAccessAttempts = Heron.Library.Classes.Constants._nMaxFailedAccessAttempts;
                opts.Lockout.AllowedForNewUsers = true;
                opts.Password.RequireDigit = true;
                opts.Password.RequireLowercase = true;
                opts.Password.RequireUppercase = true;
                opts.Password.RequireNonAlphanumeric = true;
                opts.Password.RequiredLength = Heron.Library.Classes.Constants._nMinRequiredDigitsPassword;
            }).AddEntityFrameworkStores<Heron.Data.DB.Extensions.IdentityExtend.DbContext>().AddDefaultTokenProviders().AddUserManager<UserManager<Heron.Data.DB.Extensions.IdentityExtend.User>>();
            loServices.AddScoped<SignInManager<Heron.Data.DB.Extensions.IdentityExtend.User>>();
            loServices.AddScoped<UserManager<Heron.Data.DB.Extensions.IdentityExtend.User>>();
            loServices.AddScoped<RoleManager<Heron.Data.DB.Extensions.IdentityExtend.Role>>();
            loServices.ConfigureApplicationCookie(options =>
            {
                options.LoginPath = new PathString("/Account/Index");
                options.Cookie.Name = "HeronAuthCookie";
                options.Cookie.HttpOnly = true;
            });
            loServices.AddAuthentication(o =>
            {
                o.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                o.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                o.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                o.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
            })
            .AddCookie(options =>
            {
                options.LoginPath = "/Account/Index";
            });
            loServices.AddDistributedMemoryCache();
            loServices.AddMvcCore(options =>
            {
                options.RespectBrowserAcceptHeader = true;
            })
            .AddJsonFormatters();
            loServices
                .AddMvc(options =>
                {
                    options.Filters.Add(new AuthorizeFilter(new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build()));
                })
                .SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
                .AddSessionStateTempDataProvider()
                .AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());
            loServices.AddKendo();
            loServices.Configure<RecaptchaSettings>(this._oConfiguration.GetSection("RecaptchaSettings"));
            loServices.AddTransient<IRecaptchaService, RecaptchaService>();
            loServices.Configure<IISOptions>(this._oConfiguration);
            loServices.Configure<RequestLocalizationOptions>(options =>
            {
                options.RequestCultureProviders.Clear();
                options.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("en-GB");
                options.SupportedCultures = new List<CultureInfo> { new CultureInfo("en-GB") };
            });
        }
        catch (Exception loException)
        {
            Heron.Library.Classes.Utility.MakeExceptionMessage(loException, "\r\n", "Startup.ConfigureServices");
        }
    }

    public void Configure(IApplicationBuilder loApp, IHostingEnvironment loEnv)
    {
        try
        {
            if (!this._bIsStaging)
            {
                loApp.UseHttpsRedirection();
            }
            using (var serviceScope = loApp.ApplicationServices.GetService<IServiceScopeFactory>().CreateScope())
            {
                var loContext = serviceScope.ServiceProvider.GetService<Heron.Data.DB.HeronContext>();
                loContext.Database.EnsureCreated();
                loContext.Database.Migrate();
                var loContext2 = serviceScope.ServiceProvider.GetService<Heron.Data.DB.Extensions.IdentityExtend.DbContext>();
                loContext2.Database.EnsureCreated();
            }
            if (loEnv.IsDevelopment())
            {
                loApp.UseDeveloperExceptionPage();
            }
            else
            {
                loApp.UseExceptionHandler("/Shared/Error");
                loApp.UseHsts();
            }
            loApp.UseStatusCodePages(async context =>
            {
                context.HttpContext.Response.ContentType = "text/plain";
                await context.HttpContext.Response.WriteAsync("Status code page, status code: " + context.HttpContext.Response.StatusCode);
            });
            loApp.UseStaticFiles();
            loApp.UseSession();
            loApp.UseCookiePolicy();
            loApp.UseAuthentication();
            loApp.UseMvc(routes =>
            {
                routes.MapRoute(name: "dashboard", template: "{controller=Dashboard}/{action=Index}/{lsData?}");
                routes.MapRoute(name: "default", template: "{controller=Account}/{action=Index}/{lsMessage?}");
            });
            var supportedCultures = new[] { new CultureInfo("en-GB") };
            loApp.UseRequestLocalization(new RequestLocalizationOptions
            {
                DefaultRequestCulture = new RequestCulture("en-GB"),
                SupportedCultures = supportedCultures,
                SupportedUICultures = supportedCultures
            });
        }
        catch (Exception loException)
        {
            Heron.Library.Classes.Utility.MakeExceptionMessage(loException, "\r\n", "Startup.Configure");
        }
    }

Сообщение Bad Gateway после выполнения строки выше...


person hkdave95    schedule 23.05.2019    source источник
comment
Мы используем ядро ​​​​2.2 225 ASP.NET / VS 2017 / Windows Server 2016.   -  person hkdave95    schedule 24.05.2019
comment
После того, как эта ошибка началась, я модифицировал сервер, добавив последнюю версию ядра.   -  person hkdave95    schedule 24.05.2019
comment
Кроме того, этого не происходит на машине разработки, работающей через IDE...   -  person hkdave95    schedule 24.05.2019
comment
На сервере не заканчивается память / она потребляет 50%.   -  person hkdave95    schedule 24.05.2019
comment
Примечание. Как только он попадает в строку входа, программа вылетает. Он не завершает задачу ведения журнала в попытке поймать, поэтому я немного теряюсь в том, что происходит...   -  person hkdave95    schedule 26.05.2019
comment
К вашему сведению... Часть веб-сайта работает, немного перед повторным захватом. Вы можете увидеть эту часть @ heron.dar-jader.com / Вы не увидите ошибку, потому что вы у вас нет учетных данных для входа в ту часть программы, которая иллюстрирует ошибку...   -  person hkdave95    schedule 30.05.2019


Ответы (1)


Решение этой проблемы было найдено...

https://forums.asp.net/p/2156143/6266248.aspx?p=True&t=636961808361687440

Смотри ветку выше.

По сути, это было значение заявки пользователя, содержащее изображение, размер которого превышал размер заголовка ответа.

Это может быть проблемой для ядра, так как хорошее место для хранения изображения (аватара) для удостоверения пользователя находится в userclaim.

Все пока.

Дэйвид

person hkdave95    schedule 15.06.2019
comment
Привет, @hkdave95, у меня тоже такая же проблема. Как сказано в вашем решении об удалении претензии, не могли бы вы показать мне, где она находится на самом деле и в каком методе я должен искать. Я проверил код, но не могу найти, откуда я могу контролировать или ограничивать претензии, чтобы решить эту проблему? - person Arjun_TECH; 04.07.2020