Написал консольное приложение для передачи данных с помощью RestSharp, но когда я пытаюсь создать службу Windows, она не работает - PullRequest
0 голосов
/ 17 сентября 2018

Мне поручено создать службу Windows, которая передает данные в API с помощью RestSharp.Я создал консольное приложение, которое делает то, что мне нужно, но когда я пытаюсь преобразовать его в Windows Service, метод не запускается.Я даже не могу получить сообщение об ошибке.Я приложил следующий код:

    protected override void OnStart(string[] args)
    {
        timer1 = new Timer();
        this.timer1.Interval = 150000;
        this.timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.timer1_Tick);
        timer1.Enabled = true;

        Log("Service Started successfully with Grovo-Test with Grovo in Try catch2");

        try
        {
            Grovo();
        }
        catch (Exception e)
        {
            Log(e.Message);
        }
    }

    public void Grovo()
    {
        var seconds = DateTime.Now.Second.ToString();
        var grovolist = new List<GrovoModel>();
        GrovoModel model = new GrovoModel()
        {
            employeeId = "testing",
            firstName = "testing" + seconds,
        };

        var jsonobject = "";

        foreach (var json in grovolist)
        {
            var post = JsonConvert.SerializeObject(json);
            jsonobject += post;
            jsonobject += "\n";
        }

        var clientrest = new RestClient("http://public-api.grovo.com/users/batch-sync");
        var request = new RestRequest(Method.POST);
        request.AddHeader("Postman-Token", "5fd35576-9ee6-4a65-8389-40a3b7eb1e8c");
        request.AddHeader("Cache-Control", "no-cache");
        request.AddHeader("content-type", "application/x-ndjson");
        request.AddHeader("x-grovo-onboarding-option", "email");
        request.AddHeader("x-api-key", "5Uss0T9T7b3Cdy04sGGkf7DFF7RYhPXV8mau11wh");
        //request.AddParameter("application/x-ndjson", postBody, ParameterType.RequestBody);
        request.AddParameter("application/x-ndjson", jsonobject, ParameterType.RequestBody);

        IRestResponse response = clientrest.Execute(request);
    }

Метод Log () работает, который добавляет в локальный текстовый файл каждый раз, когда служба проходит цикл, а Grovo () - нет.В настоящее время я пытаюсь запустить это на своем локальном компьютере, поэтому у меня есть учетная запись ProcessInstaller службы в локальной системе.

1 Ответ

0 голосов
/ 17 сентября 2018

Ваш объект json - пустая строка.

var grovolist = new List<GrovoModel>();

foreach (var json in grovolist)
        {
            var post = JsonConvert.SerializeObject(json);
            jsonobject += post;
            jsonobject += "\n";
        }

Вы никогда ничего не загружаете в свой гроволист. Вы создаете модель, но не добавляете ее в список.

...