2011-06-29 20 views
9

Estoy usando el programador de Quartz.NET como un servicio de Windows independiente, mientras que desde una aplicación de ASP.NET programo trabajos. Tengo un ensamblado de trabajo por separado y obtengo el siguiente errorNo se pudo cargar el error de ensamblaje de trabajos en Quartz.NET

No se pudo cargar el archivo o ensamblado 'AV.Scheduler.Jobs, Versión = 1.0.0.0, Cultura = neutro, PublicKeyToken = null' o uno de sus dependencias. El sistema no puede encontrar el archivo especificado.

Aquí está mi código,

 JobDetail jobDetail = new JobDetail("testJob", null, typeof(TestJob)); 

     //created trigger which will fire every minute starting immediately 
     SimpleTrigger trigger = new SimpleTrigger("testTrigger", 
           null, 
           DateTime.UtcNow, 
           null, 
           1, 
           TimeSpan.FromMinutes(1)); 

     scheduler.ScheduleJob(jobDetail, trigger); 

Estoy consiguiendo el error en la última línea.

+0

Está usted en el modo de depuración? ¿Dónde está sucediendo esto: servicios o asp.net? – LeftyX

+0

A través de una aplicación de consola estoy comenzando el Servidor de Cuarzo y desde la aplicación asp.net estoy programando trabajos. Esta excepción está sucediendo en la página web asp.net. Estoy comenzando la aplicación de la consola ejecutando directamente el archivo exe en la carpeta bin. La aplicación de consola es una aplicación de prueba cuando las cosas funcionan bien. La moveré a un servicio. – VJAI

+0

Resolví el problema agregando la referencia al conjunto de trabajos en la aplicación de la consola donde el programador está activando trabajos. Gracias por tu ayuda. – VJAI

Respuesta

5

Aunque ya respondí (en comentarios), estoy agregando una respuesta aquí para referencia futura.

Para que el servicio de Quartz pueda ejecutar su trabajo personalizado, necesita de alguna manera poder ubicar el conjunto de trabajos. Una solución es, como sugirió, agregarla como referencia a la aplicación de la consola que inicia y detiene el servicio de Quartz. Sin embargo, una aplicación de consola no siempre está presente. Si este es el caso, debe colocar el ensamblado de trabajo en la misma carpeta en la que se encuentra Quartz.dll (la versión de la DLL que utiliza el servicio).

Un excelente recurso para Quartz.Net es http://jvilalta.blogspot.com/. De particular interés con respecto a este tema son las siguientes entradas del blog:

+0

@kgiannakakis estoy enfrentando el mismo problema Quartz.JobPersistenceException: No se pudo \ 't recuperar trabajo porque el BLOB couldn \' t ser deserializado: No se pudo cargar el archivo o ensamblado \ 'Enterprise.Appointments.Exchange \' o una de sus dependencias. El sistema no puede encontrar el archivo especificado. ---> System.IO.FileNotFoundException: no se pudo cargar el archivo o ensamblado \ 'Enterprise.Api.Appointments.Exchange \' o una de sus dependencias. El sistema no puede encontrar el archivo especificado. Mine es un webapi y Enterprise.Appointsments.Exchange.Dto ya mencionado. – Vardhan

Cuestiones relacionadas