我有一个应用程序 .Net core 3.1。 对于自动作业执行,我已经实现了hangfire。 在本地一切正常,但是当我在服务器上发布它时,我收到 CORS 策略错误。

在此处输入图片说明

我已经在启动文件中添加了所有配置,如下所示。

public void ConfigureServices(IServiceCollection services)
{
        services.AddControllers().AddNewtonsoftJson(x => x.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore);
        
        // configure strongly typed settings object
        services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
        
        services.AddDataProtection();
        
        // Register the Swagger generator, defining 1 or more Swagger documents
        services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new OpenApiInfo { Title = "Crowd-Recruitment", Version = "v1" });
        });
        
        services.AddControllers().AddNewtonsoftJson();
        
        services.AddDbContext<recruitmentContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DevConnection")));
            
        services.AddHangfire(configuration => configuration
        .SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
        .UseSimpleAssemblyNameTypeSerializer()
        .UseRecommendedSerializerSettings()
        .UseSqlServerStorage(Configuration.GetConnectionString("DevConnection"), new SqlServerStorageOptions
        {
            CommandBatchMaxTimeout = TimeSpan.FromMinutes(5),
            SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5),
            QueuePollInterval = TimeSpan.Zero,
            UseRecommendedIsolationLevel = true,
            DisableGlobalLocks = true
        }));
        
        services.AddCors(options =>
        {
            options.AddPolicy("AllOrigins",
                builder => builder.AllowAnyOrigin()
                .AllowAnyMethod()
                .AllowAnyHeader()
                );
        });
        
        
        services.AddHangfireServer();
        services.AddMvc();
        // Auto Mapper Configurations
        var mapperConfig = new MapperConfiguration(mc =>
        {
            mc.AddProfile(new MappingProfile());
        });
        
        IMapper mapper = mapperConfig.CreateMapper();
        services.AddSingleton(mapper);
        
}                

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
 public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
 {
      app.UseMiddleware<ErrorHandlingMiddleware>();
     
      if (env.IsDevelopment())
      {
          ///app.UseDeveloperExceptionPage();
      }
     
         app.UseHangfireDashboard();
         app.UseHangfireServer();
     
     
     
     
      // Enable middleware to serve generated Swagger as a JSON endpoint.
      app.UseSwagger();
      // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),changes
      // specifying the Swagger JSON endpoint.
      app.UseSwaggerUI(c =>
      {
          c.SwaggerEndpoint("/swagger/v1/swagger.json", "Crowd-Recruitment");
      });

    app.UseRouting();          
    app.UseCors("AllOrigins");
       
    app.UseAuthentication();
    app.UseAuthorization();

     // custom jwt auth middleware
    app.UseMiddleware<JwtMiddleware>();
    
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
        endpoints.MapHangfireDashboard();
    });
    
    RecurringJob.AddOrUpdate(() => UpdatePackages(), Cron.Minutely());
}

  ask by Vishal modi translate from so

本文未有回复,本站智能推荐:

1回复

Hangfire 作业(带依赖项)调度

我正在使用 Hangfire 以特定顺序执行一些需要按计划运行的作业。 不能使用CRON,因为我不知道每次需要多长时间。 这就是我需要实现的,尽可能高效:A和B同时启动,C在B完成后启动,D在所有完成后启动 A和C完成后,我如何开始工作D? 除了 BackgroundJobs 之外还有其
1回复

如何为Hangfire的mySQL数据库设置'connectionString'?

我正在尝试将hangfire集成到.NET核心Web应用程序中。 我已通过安装所有必需的软件包来遵循Hangfire快速入门中的说明。 我还安装了一个名为Hangfire MySql的扩展,并为此安装了必要的软件包。 步骤1说:“使用连接字符串构造函数参数创建MySqlStorage的
1回复

如何在Hangfire.io中添加替换为CoreBackgroundJobPerformer的其他作业参数

在出色的hangfire.io库中, 可以使用在作业执行时替换的特殊参数执行作业,例如IJobCancellationToken ,该参数使您可以取消作业。 同样,可以在运行时将PerformContext添加为参数。 此功能在CoreBackgroundJobPerformer中实现
1回复

Hangfire .NET Core 数据库不存在 - PrepareSchemaIfNecessary

我有一个托管在 docker 映像上的 .NET Core Web 应用程序。 此应用程序使用托管在云数据库服务上的 PostgreSQL。 我们添加了一个 Hangfire,它将使用与我们的主应用程序相同的云数据库服务。 并在配置方法中: 现在,如果我们的数据库服务不可用(或数据库不存在
1回复

在.NET Core控制台应用程序中配置“ Hangfire.Net”?

我正在创建一个控制台应用程序,在其中我需要并行执行一些任务,因此我尝试使用Hangfire.Net。 谁能建议我如何在.NET Core控制台应用程序中配置Hangfire.Net?
1回复

是否可以使用 dotNet 使用 Hangfire 每 20 秒运行一次作业?

在 dotNet 核心中使用 Hangfire 我可以使用以下表达式每 20 秒运行一次作业: 但它不适用于 asp.net,使用: 我收到此错误: '*/20 * * * * *' 是无效的 crontab 表达式。 它必须按分钟、小时、天、月和星期几的顺序包含计划的 5 个组成部分。
1回复

一段时间后,.netcore上的Hangfire无法正常运作(已部署至实际伺服器)

我已经设置hangfire我.netcore项目。 每隔10秒,一些代码就会执行一次并从api中获取一些数据。 在本地,一切正常,但是当我在真实服务器(Plesk)上部署项目时,它会在一段时间后停止工作。 前端是vue.js 当我打开网站(Vue.js)时,hangfire可以正
1回复

.NET Core 类使用 Hangfire 和依赖注入每 15 分钟运行一次方法

我有我的 DbContext (IApplicationDbContext) 和另一个服务(是否 API 调用)通过依赖注入可用。 我需要每 15 分钟运行一次 Hangfire Recurrent Job 以联系多个 API 并获取数据,然后将其放入数据库。 我想要一个包含作业方法的类,但作业需