Как исправить ошибку 500 Внутренняя ошибка сервера при входе в систему? - PullRequest
0 голосов
/ 17 января 2019

Я делаю приложение с Asp Core 2.1 и Vue. Моя проблема - вход на рабочий сервер (Windows Server 2012 R2). Когда я хочу сделать логин выдает следующую ошибку.

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

Access to XMLHttpRequest at 'http://{ip...}/api/account/login' from origin 'http://localhost:8000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Uncaught (in promise) TypeError: Cannot set property 'error' of undefined at eval (Login.vue?03db:289)

Все остальные конечные точки отвечают, кроме входа в систему.

Однако, когда я тестирую в бэкенде разработки, указывающем на производственную БД, он регистрирует без проблем, и все конечные точки также отвечают (получить, отправить и т. Д.). Насколько я понимаю, это может быть проблема конфигурации, возможно, на сервере, связанном с IIS. Как я понимаю, если бы речь шла о CORS, ни одна конечная точка не работала бы

public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("defaultConnection")));

            services.AddIdentity<ApplicationUser, IdentityRole>(options =>
            {
                options.Password.RequiredLength = 5;

            })
            .AddEntityFrameworkStores<ApplicationDbContext>()
            .AddDefaultTokenProviders();

        services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddJwtBearer(options => 
            options.TokenValidationParameters = new TokenValidationParameters
            {
                ...
            });

        services.AddTransient<IEmailSender, AuthMessageSender>();

        services.AddCors();
        //Autorizacion a recursos de la aplicación
        services.AddMvc().AddJsonOptions(ConfigureJson);

        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

        services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();


        }); 
    }


    private void ConfigureJson(MvcJsonOptions obj) {
        obj.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
    }
    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ApplicationDbContext context)
    {
        app.UseAuthentication();
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseHsts();
        }

        app.UseCors(builder => builder
                    .AllowAnyOrigin()
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .AllowCredentials()
                    );

        app.UseDefaultFiles();
        app.UseStaticFiles();
        app.UseHttpsRedirection();
        app.UseMvc();
    }

Program.cs

public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
        .UseKestrel()
        .UseContentRoot(Directory.GetCurrentDirectory())
        .UseIISIntegration()
        .UseStartup<Startup>()
        .Build();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...