我正在将服务器从microsoft服务器2008 R2迁移到microsoft服务器2016。后台有一个独立服务器,用于管理要在SAS上运行的作业。我们使用ConcurrentDictionary记录工作信息。该代码可以在旧服务器上正常工作,但是在新服务器上,作业信息将从ConcurrentDictionary中消失。
ConcurrentDictionary在回调函数OnProgress和Oncomplete中更新。我试图调试代码,但是它不会在这两个函数中达到断点。如果我将这些函数公开并在主api中添加引用,则回调将无法正常工作。接下来,我计划尝试使用xml文件而不是ConcurrentDictionary存储作业信息。但是我希望在对代码进行较大更改之前先查看其他选项。
正在进行中-
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
});
答案 0 :(得分:0)
此问题已解决。服务器功能中的“ http激活”已禁用。启用它可以使函数调用正常工作。