本地部署Project Server 2019:CSOM项目更新队列作业抛CommunicationObjectAbortedException
Project Server CSOM 更新队列作业失败问题(错误ID 9133、26000)
我编写了一段使用CSOM修改项目的代码,功能为更新项目所有者、添加新任务并分配资源,代码如下:
projContext.Load(this.projContext.Projects, pj => pj.Where(p => p.Id == projId)); projContext.ExecuteQuery(); var proj = projContext.Projects.SingleOrDefault(p => p.Id == projId); var draft = proj.CheckOut(); projContext.Load(draft, p => p.Owner); projContext.ExecuteQuery(); draft.Owner = managerUser; var tasks = draft.Tasks; projContext.Load(tasks, tsk => tsk.IncludeWithDefaultProperties(t => t.Id, t => t.StatusManager)); projContext.ExecuteQuery(); var newTaskId = Guid.NewGuid(); var newTask = new PS.TaskCreationInformation { Id = Guid.NewGuid(), Name = "New task", StatusManager = managerUser, }; tasks.Add(newTask); draft.Assignments.Add(new PS.AssignmentCreationInformation { TaskId = newTaskId, ResourceId = managerId, }); var qJob = draft.Update(); var jobState = projContext.WaitForQueue(qJob, TimeoutSeconds);
这段代码在开发环境运行正常,但在生产环境中,针对特定类型的项目执行时,更新队列作业会失败并抛出内部异常。受影响的项目类型包括:
- 在PWA中新建的企业项目
- 通过Project Professional将本地项目导入服务器创建的企业项目
队列错误信息
您的项目更新作业已失败。当前状态为失败,完成度为0%,进入队列时间为2022年12月8日16:24:05。错误ID:9133、26000
以下是详细错误信息,请发送给管理员以进行更详细的故障排除。
<?xml version="1.0" encoding="utf-16"?> <errinfo> <general> <class name="Project"> <error id="9133" name="ProjectSchedulingEngineException" uid="2d0b12df-fb76-ed11-95ef-005056b6871f" exception="System.ServiceModel.CommunicationObjectAbortedException: The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it has been Aborted. Server stack trace: at System.ServiceModel.Channels.CommunicationObject.ThrowIfDisposedOrNotOpen() at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) Exception rethrown at [0]: at Microsoft.Office.Project.Server.BusinessLayer.ProjectEngineUpdate.UpdateProjectWithPCS(IPlatformContext context, ProjectDataSet dataset, Guid projectUid, Guid sessionUid, Boolean inVisibilitySyncMode, Boolean skipEventHandlers, Boolean skipPostSSPUpdate) at Microsoft.Office.Project.Server.BusinessLayer.ProjectMain.HandleProject2(MessageContext mContext, ProjectDataSet dataset, Guid projectUid, Guid sessionUid, Boolean inVisibilitySyncMode)" /> </class> <class name="Queue"> <error id="26000" name="GeneralQueueJobFailed" uid="2e0b12df-fb76-ed11-95ef-005056b6871f" JobUID="c3f6fcdb-fb76-ed11-95ef-005056b6871f" ComputerName="7e53cc63-ebbd-427f-bde0-d1db317abacd" GroupType="ProjectUpdate" MessageType="ProjectUpdate2Message" MessageId="1" Stage="" CorrelationUID="704180a0-0676-40da-abac-d2a039c9acc3" /> </class> </general> </errinfo>
您可以执行以下操作:
- 使用错误ID和错误XML进行故障排除;
- 将您的作业ID(db6df25a-d4c1-4631-b7a1-2e7aae9f5c16)和错误XML发送给管理员。
我尝试在开发环境复现该问题但未成功,推测问题由微软产品本身导致,寻求可行的绕过方案或解决办法。
内容的提问来源于stack exchange,提问作者Maxim Panasyuk
相关产品推荐
相关产品推荐

