1

我想使用 PSI(项目服务器接口)更改 ProjectOwnerUID。我用类似的代码写了这个

var projectDataSet = this.GetProjectDataSet(projectInfo.ProjectUID);
        var orginalProject = this.GetProject(projectInfo.ProjectUID, projectDataSet);
        var sessionUID = this.CheckOutProject(projectInfo.ProjectUID);
if (!string.IsNullOrEmpty(projectInfo.ProjectOwnerName))
        {
            var resourceManager = new Resource();
            var ownerResource = resourceManager.GetResource(projectInfo.ProjectOwnerName);
            if (ownerResource == null)
            {
                throw new Exception("this is not valid");
            }
            orginalProject.ProjectOwnerID = ownerResource.ResourceUID;
        }


this.UpdateProject(sessionUID, projectDataSet);

不幸的是,当光标到达 UpdateProject 行时,它会抛出带有代码号的异常

ProjectServerError(s) LastError=ProjectInvalidOwner 说明:将其传递给 PSClientError 构造函数以访问所有错误信息

内部错误 1056(无效的项目所有者)。

我不知道发生了什么,发出了这个异常
,我该如何解决这个问题?

4

1 回答 1

0

当您无权使用以下代码片段编辑项目信息时会出现此问题,您可以告诉项目服务器运行这段代码不要检查权限!

using Microsoft.SharePoint;
    public void MyVoid()
    {
       SPSecurity.RunWithElevatedPrivileges(delegate()
                {    
                  //Write ur Codes here :)

                });
    }

MSDN 参考

于 2016-06-15T06:15:35.373 回答