2016-01-23 11 views
1

Я хочу изменить ProjectOwnerUID Использование PSI (интерфейс Project Server) .Я написал, что с следовать подобный кодИзменить Владелец проекта с помощью PSI 2010 (Server Interface Project)

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 (ов) LastError = ProjectInvalidOwner Инструкции: Передайте это в PSClientError конструктор, чтобы открыть всю информацию об ошибке

Inner Er ror 1056 (Недопустимый владелец проекта).

Я не знаю, что произойдет, выдавший это исключение
как я могу решить эту проблему?

ответ

0

Эта проблема возникает, когда у вас нет прав редактировать информацию о проекте, используя следующий фрагмент кода, который вы можете сообщить серверу проекта для запуска этого фрагмента кода, не проверяя разрешения!

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

       }); 
    } 

MSDN Reference