проблема после миграции на Windows Server 2016 - PullRequest
0 голосов
/ 23 октября 2019

Я работаю над миграцией сервера с Microsoft Server 2008 R2 на Microsoft Server 2016. В фоновом режиме есть отдельный сервер, который управляет заданиями, выполняемыми на SAS. Мы используем ConcurrentDictionary для записи информации о работе. код отлично работает на старом сервере, но на новом сервере информация о задании исчезает из ConcurrentDictionary.

обновляется ConcurrentDictionary в функциях обратного вызова OnProgress и Oncomplete. Я попытался отладить код, но он не будет достигать точки останова в этих двух функциях. Если я сделаю эти функции общедоступными и добавлю ссылку в основной API, то обратный вызов не будет работать правильно. Далее я планирую попробовать использовать XML-файл для хранения информации о задании вместо ConcurrentDictionary. Но я бы предпочел посмотреть другие варианты, прежде чем вносить большие изменения в код.

OnProgress -

   private void OnProgress(Messages.JobFeedback feedback)
    {
        operations.AddOrUpdate(feedback.JobId, 
            new SasJobsServiceOperation { Feedback = feedback },
            (id, o) => { o.Feedback = feedback; return o; });
    }

OnCompleted -

    private void OnCompleted(Messages.JobFeedback feedback, string xmlResult)
    { 
        operations.AddOrUpdate(feedback.JobId, 
            new SasJobsServiceOperation { Feedback = feedback, XmlResult = xmlResult },
            (id, o) => { o.Feedback = feedback; o.XmlResult = xmlResult; return o; });

    }

вызов функции -

        this.callback.OnProgress(new Messages.JobFeedback 
        {
            JobId = this.settings.Id,
            PercentComplete = 1,
            FeedbackMessage = "Starting Job on server",
            Status = Messages.StatusCode.Running
        });

1 Ответ

0 голосов
/ 28 октября 2019

Эта проблема решена. «Активация http» была отключена в функциях сервера. Включив его, вы получили вызов функции.

...