C# 无法在.net core 3.1 web api中找出COR

C# 无法在.net core 3.1 web api中找出COR,c#,reactjs,asp.net-core,cors,C#,Reactjs,Asp.net Core,Cors,我尝试将所有方法调用移动不少于10000次。我需要尝试编号10001才能成为赢家我做错了什么? 我不断得到与CORS相关的错误,但我已经按照指南尝试解决它 public void ConfigureServices(IServiceCollection services) { services.AddCors(options => { options.AddDefaultPoli

我尝试将所有方法调用移动不少于10000次。我需要尝试编号10001才能成为赢家我做错了什么?

我不断得到与CORS相关的错误,但我已经按照指南尝试解决它

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors(options =>
            {
                options.AddDefaultPolicy(
                    builder =>
                    {
                        builder.WithOrigins("http://localhost:3000").AllowAnyHeader().AllowAnyMethod();
                    });
            });
            //services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
            services.AddControllers();
            services.AddAuthentication(IISDefaults.AuthenticationScheme);
            services.AddSwaggerGen();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "MES vs API");
            });

            app.UseHttpsRedirection();
            app.UseRouting();
            app.UseCors("AllowAnyOrigin");
            app.UseAuthorization();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
在react中,我有以下内容:

fetch('http://localhost:44387/api/Users/GetTest').then(function (response) {
      this.state.user = response.text();
});

您正在发出http请求,但已启用HttpsRedirection

如果开发时没有https,则应移动
app.UseHttpsRedirection()调用仅在生产环境中运行的代码块。e、 g

public void配置(IApplicationBuilder应用程序,IWebHostEnvironment环境)
{
if(env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
其他//生产
{
app.UseHttpsRedirection();
}
app.UseSwagger();
app.UseSwaggerUI(c=>
{
c、 SwaggerEndpoint(“/swagger/v1/swagger.json”,“MES vs API”);
});
app.UseRouting();
app.UseCors();//使用示例代码中定义的默认策略
//...
此外,您正在添加默认的CORS策略,但当您调用
UseCors()
时,您正在使用命名策略(AllowAnyOrigin)

定义一个命名策略“AllowAnyOrigin”,或者只需调用
app.UseCors();
即可使用默认策略


您正在发出http请求,但已启用HttpsRedirection

如果开发时没有https,则应将
app.UseHttpsRedirection();
调用移动到仅在生产环境中运行的代码块中

public void配置(IApplicationBuilder应用程序,IWebHostEnvironment环境)
{
if(env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
其他//生产
{
app.UseHttpsRedirection();
}
app.UseSwagger();
app.UseSwaggerUI(c=>
{
c、 SwaggerEndpoint(“/swagger/v1/swagger.json”,“MES vs API”);
});
app.UseRouting();
app.UseCors();//使用示例代码中定义的默认策略
//...
此外,您正在添加默认的CORS策略,但当您调用
UseCors()
时,您正在使用命名策略(AllowAnyOrigin)

定义一个命名策略“AllowAnyOrigin”,或者只需调用
app.UseCors();
即可使用默认策略


你能试着用这种方法吗

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
       app.UseDeveloperExceptionPage();
    }
    app.UseCors("AllowAnyOrigin");
    app.UseSwagger();
    app.UseSwaggerUI(c =>
    {
       c.SwaggerEndpoint("/swagger/v1/swagger.json", "MES vs API");
    });

    app.UseHttpsRedirection();
    app.UseRouting();
    app.UseAuthorization();
    app.UseEndpoints(endpoints =>
    {
       endpoints.MapControllers();
    });
}

你能试着这样用吗

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
       app.UseDeveloperExceptionPage();
    }
    app.UseCors("AllowAnyOrigin");
    app.UseSwagger();
    app.UseSwaggerUI(c =>
    {
       c.SwaggerEndpoint("/swagger/v1/swagger.json", "MES vs API");
    });

    app.UseHttpsRedirection();
    app.UseRouting();
    app.UseAuthorization();
    app.UseEndpoints(endpoints =>
    {
       endpoints.MapControllers();
    });
}

在设置CORS策略时,我将其用于依赖项注入容器

            //CORS CONFIGURATION
            services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                builder => builder.SetIsOriginAllowed(_ => true)
                .AllowAnyMethod()
                .AllowAnyHeader()
                .AllowCredentials());
            });
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

            //ALLOW CORS
            app.UseCors("CorsPolicy");

            app.UseAuthentication();
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
然后应用CORS策略

            //CORS CONFIGURATION
            services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                builder => builder.SetIsOriginAllowed(_ => true)
                .AllowAnyMethod()
                .AllowAnyHeader()
                .AllowCredentials());
            });
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

            //ALLOW CORS
            app.UseCors("CorsPolicy");

            app.UseAuthentication();
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }

在设置CORS策略时,我将其用于依赖项注入容器

            //CORS CONFIGURATION
            services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                builder => builder.SetIsOriginAllowed(_ => true)
                .AllowAnyMethod()
                .AllowAnyHeader()
                .AllowCredentials());
            });
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

            //ALLOW CORS
            app.UseCors("CorsPolicy");

            app.UseAuthentication();
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
然后应用CORS策略

            //CORS CONFIGURATION
            services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                builder => builder.SetIsOriginAllowed(_ => true)
                .AllowAnyMethod()
                .AllowAnyHeader()
                .AllowCredentials());
            });
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

            //ALLOW CORS
            app.UseCors("CorsPolicy");

            app.UseAuthentication();
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }

我已设法使客户端上的API调用保持(挂起)状态。因此………请在react应用程序中打开开发控制台,并在控制台的“网络”选项卡下检查HTTP调用。在特定调用上是“访问控制允许源”响应标题中是否存在标题?直到我在Startup.cs中乱了方才出现-导致我发布的代码。现在它处于挂起状态,然后最终在F12中出现连接重置错误而失败。这需要几分钟的时间。
app.UseHttpsRedirection()
move it over move it over move it?to where?我已设法使客户端上的API调用保持(挂起)状态。因此………请在react应用程序中打开开发控制台,并在控制台的“Network”选项卡下检查HTTP调用。在特定调用上是“Access Control Allow Origin”响应标题中是否存在标题?直到我在Startup.cs中乱了方才出现-导致我发布的代码。现在它处于挂起状态,然后最终在F12中出现连接重置错误而失败。这需要几分钟的时间。
app.UseHttpsRedirection()
将其移到其他位置?移到哪里?这是否改变了它可以同时在http和https模式下工作?@MuhammetCaylak在开发中同时使用http和https(如果安装了证书)。在生产中它将只使用https。这是否改变了它可以同时在http和https模式下工作?@MuhammetCaylak在开发中同时使用http和https(如果安装了证书)。在生产中,它将仅使用https