C# 使用PSI 2010(Project Server界面)更改项目所有者

C# 使用PSI 2010(Project Server界面)更改项目所有者,c#,project-server,psi,epm,C#,Project Server,Psi,Epm,我想使用PSI(Project Server接口)更改ProjectOwnerUID var projectDataSet = this.GetProjectDataSet(projectInfo.ProjectUID); var orginalProject = this.GetProject(projectInfo.ProjectUID, projectDataSet); var sessionUID = this.CheckOutProject(projec

我想使用PSI(Project Server接口)更改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=ProjectnValidDowner说明:将其传递到PSClientError构造函数以访问所有错误信息

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

我不知道是什么原因导致了这个异常

如何解决此问题?

如果您没有使用以下代码段编辑项目信息的权限,则会出现此问题。您可以告诉project server运行此代码段不要检查权限

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

                });
    }

当您没有权限使用以下代码段编辑项目信息时,就会出现此问题。您可以告诉project server运行此代码段,不要检查权限

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

                });
    }