После создания задания таймера я не вижу его на панели администрирования SharePoint

Я разработал задание таймера для одного из моих веб-приложений SharePoint. Я написал свою работу из класса SPJobdefinition:

public class EraseUsersJob : SPJobDefinition
    {
        #region constants
        public struct Constantes
        {
            public const string JOB_NAME = "EraseUsers";
            public const string JOB_TITLE = "Erase Users";
        }
        #endregion

        #region constructors
        public EraseUsersJob() : base() { }

        public EraseUsersJob(string jobName,
                       SPService service,
                       SPServer server,
                       SPJobLockType targetType)
            : base(jobName, service, server, targetType) { }

        public EraseUsersJob(SPWebApplication webApplication)
            : this(Constantes.JOB_NAME, webApplication)
        {
        }

        public EraseUsersJob(string jobName, SPWebApplication webApplication)
            : base(jobName, webApplication, null, SPJobLockType.Job)
        {
            this.Title = Constantes.JOB_TITLE;
        }
        #endregion

        #region override
        public override void Execute(Guid targetInstanceId)
        {
        //my code
        }
        // my private methods used in execute() method

Затем в консольной программе создайте новый экземпляр этого задания, используя конструктор с аргументом SPWebApplication. Затем я устанавливаю график своей работы и обновляю его. Моя проблема в том, что когда я проверяю, было ли создано мое задание таймера в администрировании SharePoint, я обнаруживаю, что оно не было создано. Я что-то пропустил? Если вам нужна дополнительная информация или дополнительная информация, я предоставлю ее вам.

РЕДАКТИРОВАТЬ: Вот мой Program.cs:

class Program
{
    static void Main(string[] args)
    {
        try
        {
            SPWebApplication webApplication = SPWebApplication.Lookup(new Uri("http://XXXXX:80"));
            //Console.WriteLine("Installing EraseUsers job  ...");
            JobManager jobsManager = new JobManager();
            jobsManager.ApplyJobs(webApplication);
        }
        catch (Exception e)
        {
            Console.WriteLine("ERROR: "+e.Message);
        }

    }

Вот мой класс менеджера по работе:

public class JobManager : DeployJobHelper 
{
    public void ApplyJobs(SPWebApplication webApplication) 
    {            
        try
        {
            Console.WriteLine("         Installing EraseUsersJob");
            EraseUsersJob eraseUsersJob= new EraseUsersJob(webApplication);
            this.ApplyJob(webApplication, eraseUsersJob);
        }
        catch (Exception ex)
        {
            Console.WriteLine("                 Error: " + ex.Message + " // " + ex.StackTrace);
        }

        Console.WriteLine("         Job installation finished.");
    }
}

Вот мой DeployHelper.cs:

public class DeployJobHelper
{
 protected void ApplyJob(SPWebApplication webApplication, SPJobDefinition jobDefinition)
    {
        string jobName = jobDefinition.Name;
        // delete previous Job definition
        webApplication.DeleteJobByName(jobName);
        //Install Job
        jobDefinition.Schedule = new SPMinuteSchedule() { BeginSecond=0, EndSecond=50,Interval=2 }; //GetScheduleValue(jobName);
        jobDefinition.Update();
    }
}

Более того, я видел эту ошибку в ULS:

SharePoint cannot deserialize an object of type XyZ.AbC.EraseUsersJob.EraseUsersJob, XyZ.AbC.EraseUsersJob, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null on this machine.  This typically occurs because the assembly containing this type is not installed on this machine.  In this case, this message can be safely ignored.  Otherwise, the assembly needs to be installed on this machine in a location that can be discovered by the .NET Framework.

Я читал, что эта ошибка связана с перезапуском таймера служб Windows Sharepoint Services или проблемами с пространством имен. Я уже перезапустил свой таймер Windows SharePoint Services, и все мои классы обернуты в пространство имен XyZ.AbC.EraseUsersJob.

0 ответов

Другие вопросы по тегам