石英.在重写成员时违反了继承安全规则
本文关键字:继承 安全 规则 重写 成员 石英 | 更新日期: 2023-09-27 18:12:50
当我用Quartz浏览我的应用程序时,我得到了这个错误。. NET和MVC4.
重写成员时违反了继承安全规则:'Quartz.Core.QuartzScheduler.InitializeLifetimeService()'。重写方法的安全可访问性必须与被重写方法的安全可访问性相匹配。
我不明白这是怎么回事。
我在Global.asax中的代码:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
BuildQuartzScheduler();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
private void BuildQuartzScheduler()
{
// construct a scheduler factory
ISchedulerFactory schedFact = new StdSchedulerFactory();
// get a scheduler
IScheduler sched = schedFact.GetScheduler();
IJobDetail job = JobBuilder.Create<AlertasJob>().WithIdentity("AlertasJob").Build();
ITrigger morningTrigger = TriggerBuilder.Create()
.ForJob(job)
.WithCronSchedule("0 0 6 * * ?")
.WithIdentity("AlertaManhaTrigger")
.StartNow()
//.WithDailyTimeIntervalSchedule(x => x.WithIntervalInMinutes(2))
.Build();
ITrigger nightTrigger = TriggerBuilder.Create()
.ForJob(job)
.WithCronSchedule("0 0 23 * * ?")
.WithIdentity("AlertaNoiteTrigger")
.StartNow()
//.WithDailyTimeIntervalSchedule(x => x.WithIntervalInMinutes(2))
.Build();
var triggersList = new Quartz.Collection.HashSet<ITrigger>() { morningTrigger, nightTrigger };
sched.ScheduleJob(job, triggersList, true);
sched.Start();
}
}
AlertasJob类:
public class AlertasJob : IJob
{
public void Execute(IJobExecutionContext context)
{
Parametro param = new Parametros.Parametro();
param.Obter();
VeriricarFuncionarioSemEPI(param);
}
public void VeriricarFuncionarioSemEPI(Parametro param)
{
DateTime? dataBusca = DateTime.Now;
using (Data.Server.SinsysEPIEntities context = new Data.Server.SinsysEPIEntities())
{
var funcs = context.Funcionarios
.Where(i => i.Funcao.ListaEPIs.Any());
foreach (var funcionario in funcs)
{
List<string> lstEPI = new List<string>();
foreach (var epi in funcionario.Funcao.ListaEPIs)
{
if (epi.EPI.DiasUso.HasValue)
{
var ir =
context.ItemRequisicaos
.Where(i => i.Requisicao.CodigoFuncionario == funcionario.Codigo)
.Where(i => i.EPI.Codigo == epi.CodigoEPI)
.Where(i => i.Devolvido == null || i.Devolvido == false)
.Where(i => i.Requisicao.Data.HasValue && i.Quantidade.HasValue)
.ToList()
.Where(i => i.Requisicao.Data.Value <= dataBusca || i.Requisicao.Data.Value >= dataBusca.Value.AddDays(-epi.EPI.DiasUso.Value * i.Quantidade.Value));
if (ir.Count() == 0)
lstEPI.Add(epi.EPI.Nome + "(CA " + epi.EPI.CA + ")");
}
}
if (lstEPI.Any())
{
var alerta = new AlertaFuncSemEPI(funcionario.Codigo, funcionario.Nome, funcionario.Funcao.Nome, lstEPI, param.EmailSemEPI);
}
}
}
}
}
谢谢你的帮助。
我迁移了我们所有的石英。Net代码库远离Asp。因为这些原因。无论如何,我的第一个猜测是查看您的应用程序所运行的信任级别。如果您以中等信任运行,这很可能是问题所在。
快速搜索Quartz。网络和中等信任显示相当多的人似乎有类似的症状。如果是这样的话,那么很抱歉,除了离开Asp之外,我不能提供任何建议。