Рекомендации по управлению большим количеством ресурсов в Project Server 2010

 

Применимо к: Project Server 2010

Последнее изменение раздела: 2016-11-30

В данной статье описываются рекомендации по управлению пользователями в среде Microsoft Project Server 2010 при работе с проектами, которые содержат множество пользователей.

Содержание:

  • Обзор разрешений сайта Project Server 2010

  • Разрешения Microsoft SharePoint Server 2010 для пользователей Project Server 2010

  • Проблемы производительности при превышении рекомендуемого ограничения числа пользователей сайтов проекта

  • Наследование разрешений от родительского сайта PWA

  • Отключение параметров разрешений сайта проекта

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

Обзор разрешений сайта Project Server 2010

Project Server 2010 использует обычную инфраструктуру разрешений SharePoint для контроля доступа сайта Microsoft Project Web App (PWA). Данный продукт также использует ту же инфраструктуру для контроля доступа любого сайта проекта (которые ранее называли сайтами рабочей области проекта), создающимися для отдельных планов проекта в Project Server.

На уровне сайта PWA пользователи добавляются в определенные группы SharePoint в зависимости от их уровня разрешений в Project Server. Страница параметров сайта PWA содержит группы "Microsoft Project Server" SharePoint для руководителей проектов, читателей, участников групп, веб-администраторов, а также администраторов страниц рабочих процессов и сведений о проекте. При добавлении пользователей в Project Server 2010 они также добавляются в соответствующую группу сайта PWA, к которой им разрешен доступ. Допустим, например, что пользователь добавляется в Project Server 2010 и при этом является участником группы безопасности "Руководители проекта". Пользователь добавляется в Группу руководителей проектов (Microsoft Project Server) в разделе Разрешения сайта для домашней страницы PWA, страницы Центра проекта, страницы Центра утверждения и всех страниц сайта PWA, к которым у пользователя есть доступ.

Параметры разрешений сайта PWA не только содержат группы "Microsoft Project Server" SharePoint, но и отображают некоторые отдельные учетные записи пользователей SharePoint для администраторов семейства сайтов и другие учетные записи администраторов фермы. В следующей таблице показаны уровни разрешений SharePoint для группы Microsoft Project Server SharePoint на уровне сайта PWA.

Имя Уровень разрешений

Группа руководителей проектов (Microsoft Project Server)

Ограниченный доступ, руководители проектов (Microsoft Project Server)

Группа читателей (Microsoft Project Server)

Ограниченный доступ, читатели (Microsoft Project Server)

Группа участников рабочих групп (Microsoft Project Server)

Ограниченный доступ, участники группы (Microsoft Project Server)

Группа веб-администраторов (Microsoft Project Server)

Ограниченный доступ, веб-администраторы (Microsoft Project Server)

Группа администраторов страниц рабочих процессов и сведений о проекте (Microsoft Project Server)

Ограниченный доступ

Для сайтов проекта пользователи добавляются напрямую по отдельности, они не добавляются как определенные группы "Microsoft Project Server" SharePoint. Уровень разрешения пользователя определяется его или ее ролью.

Разрешения SharePoint Server 2010 для пользователей Project Server 2010

Пользователи Project Server 2010 получают доступ к сайтам Project Server с помощью разрешений SharePoint Server 2010. Project Server 2010 основан на службах Microsoft SharePoint Server 2010, а сайты, доступные в Project Server 2010, — это сайты SharePoint.

Разрешения SharePoint назначаются двум следующим типам сайтов Project Server 2010:

  • сайты PWA (домашняя страница PWA, Центр проекта, центр ресурсов и т. д.);

  • сайты проекта (сайты совместной работы для отдельного проекта; их называли сайтами рабочих областей проекта в Office Project Server 2007).

Для сайтов PWA пользователи Project Server 2010 назначаются группам Microsoft Project Server SharePoint в зависимости от их уровня разрешений в Project Server 2010:

Роль безопасности пользователя Разрешения SharePoint на сайте PWA
  • Руководитель проектов

  • Руководитель портфеля

  • Руководитель ресурсов

  • Руководитель

Группа руководителей проектов (Microsoft Project Server)

Администратор

Группа веб-администраторов (Microsoft Project Server)

Участник группы

Ведущий сотрудник групп

Группа участников рабочих групп (Microsoft Project Server)

Для сайтов проектов пользователи Project Server 2010 получают следующие разрешения SharePoint. Для сайтов проектов пользователи Project Server 2010 добавляются как отдельные пользователи SharePoint с определенными разрешениями SharePoint для сайта:

Пользователь Разрешения SharePoint на сайте проекта

Руководители проекта, которые опубликовали проект

Руководители проектов (Microsoft Project Server)

Руководители проектов с разрешениями для сохранения проекта

Руководители проектов (Microsoft Project Server)

Участники групп с назначениями в проекте

Участники групп (Microsoft Project Server)

Пользователи Project Server с разрешением для просмотра сайта проекта

Читатели (Microsoft Project Server)

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

В Office Project Server 2007 при синхронизации пользователей с сайтами PWA может ухудшиться производительность, так как отдельные пользователи добавляются на сайты PWA и сайты рабочей области проекта с определенными уровнями разрешений. При изменении разрешений пользователя для сайта все пользователи с разрешениями для этого сайта удаляются, а затем добавляются обратно. Если на сайте много пользователей, этот процесс может отнять много времени. У пользователей, которые добавляются обратно на сайт, будет возникать ошибка отказа в доступе, пока они не будут добавлены на сайт.

В Project Server 2010 в процесс доступа пользователей к сайтам PWA было внесено два изменения для исправления проблемы, существующей в Office Project Server 2007:

  • пользователи, открывающие сайты PWA, добавлены в группы пользователей SharePoint, а не добавляются отдельно;

  • при синхронизации пользователей они удалятся отдельно и добавляются обратно по одному (вместо удаления всех пользователей и их одновременного добавления на сайт).

Эти процессы были приняты только для сайтов PWA, к которым обычно обращается множество пользователей. Это изменение не было внесено для сайтов проекта. Это связано с тем, что к сайтам проекта обычно обращается намного меньше пользователей (обычно это ресурсы, назначенные проекту) и вероятность влияния на них проблемы синхронизации намного меньше. Проблема может возникнуть, если вы хотите, чтобы многие или все пользователи могли обращаться ко множеству или всем сайтам проекта. Этого можно достичь, добавив множество пользователей в проект или назначив разрешение Просмотр сайтов проекта на уровне участника группы в категории, которая содержит множество или все проекты. Однако в этой ситуации могут быть превышены рекомендуемые ограничения программного обеспечения SharePoint Server 2010, если количество пользователей слишком большое. Превышение этих ограничений может привести к ухудшению производительности. Каждый пользователь, добавляемый отдельно на сайт, считается областью безопасности. Рекомендуемое максимальное число уникальных областей безопасности для списка равно 1000. Каждый список и библиотека на сайте наследует разрешения родительского сайта и превышает ограничение, если более 1000 отдельных пользователей обращаются к сайту. Дополнительные сведения об ограничении областей безопасности см. в разделе Управление мощностью SharePoint Server 2010 Ограничения, связанные с программным обеспечением.

При превышении рекомендуемых ограничений числа уникальных областей безопасности может ухудшиться производительность. Проблема возникает, когда изменение вносится в членство сайта, вызванное изменениями в категориях или группе, или в результате таких действий, как добавление или деактивация пользователя. Одной из причин применения ограничения числа отдельных пользователей послужило то, что при превышении этого ограничения, процесс удаления пользователей с сайта может стать очень медленным. Он будет особенно медленным, если один и тот же пользователь удаляется с нескольких сайтов, на которых превышено рекомендуемое ограничение. При деактивации множества пользователей сервер может перестать отвечать или проверять подлинность пользователей. Это создает уникальную проблему, когда рекомендуемое число отдельных пользователей сайта превышается. Сервер может перестать отвечать, когда вы будете управлять пользователями, так как у слишком многих пользователей есть разрешения для этого сайта. При попытке устранить проблему, удаляя пользователей с сайта, сервер также может перестать отвечать.

Способы предотвращения этой проблемы зависят от ваших целей.

  • Если вам действительно нужно, чтобы большинство пользователей могли получить доступ к большинству сайтов проекта: вместо добавления пользователей на сайты по отдельности используйте группы SharePoint Server 2010 и наследование от PWA, чтобы добавить пользователей в эти группы. Например, обычно родительским сайтом для сайтов проекта является домашний сайт PWA. В этой ситуации сайты проекта наследуют разрешения домашнего сайта PWA, который содержит всех пользователей PWA в группах Microsoft Project Server SharePoint.

  • Если ситуация, когда множество пользователи обращаются ко многим сайтам, является нежелательной и вы должны устранить проблему: удалите разрешение категории Просмотр сайтов проекта из категории, которая предоставляет пользователям доступ к сайтам. Вы также можете сократить число ресурсов, назначенных проекту. Перед выполнением каждого действия следует остановить синхронизацию пользователей с сайтом. В противном случае каждое действие может привести к тому, что сервер перестанет отвечать.

Чтобы отключить синхронизацию сайта проекта, вы можете написать вспомогательную программу, использующую интерфейс PSI, веб-службу администрирования и задающую для перечисления UserSyncSetting (Возможно, на английском языке)значение DisablePWS. Вызовите перечисление с помощью метода Admin.UpdateUserSyncSetting (Возможно, на английском языке).

Имя участника Описание

Enable

Значение=0. Включить все синхронизации.

DisablePWA

Значение=1. Отключить синхронизацию с Project Web App.

DisablePWS

Значение=2. Отключить синхронизацию с сайтами проекта для пользователя.

DisableEmailSync

Значение=3. Отключить синхронизацию электронной почты.

DisableAll

Значение=4. Отключить все синхронизации.

Вы также можете отключить этот параметр, внеся изменения непосредственно в таблицу MSP_WEB_ADMIN базы данных "Опубликованное" (в столбце WADMIN_USER_SYNC_SETTING). Вы можете выполнить следующий SQL-запрос, чтобы отключить синхронизацию сайта проекта:

Update [ProjectServer_Published].[dbo].[msp_web_admin] set [WADMIN_USER_SYNC_SETTING]=2

Внесение изменений непосредственно в таблицу MSP_WEB_ADMIN базы данных "Опубликованное" может оказаться намного проще, чем создание и тестирование средства для выполнения той же задачи с помощью PSI.

Примечание

В большинстве случаев не рекомендуется изменять базу данных "Опубликованное" напрямую. Кроме того, если сделать это, вы можете нарушить правила предоставления поддержки. Но использование предыдущего запроса для отключения синхронизации сайта проекта является разрешенным исключением.

Наследование разрешений от родительского сайта PWA

После отключения синхронизации сайта проекта подобная проблема все равно может возникнуть, если попытаться удалить пользователей непосредственно с сайта проекта с помощью функций на странице разрешений сайта SharePoint. Один из способов быстрого удаления пользователей без инициации процесса удаления отдельных пользователей, вызывающего проблему, является наследование разрешений родительского сайта. Это можно сделать с помощью ленты на странице разрешений отдельного сайта проекта (в меню Действия сайта).

Наследование сайтом проекта разрешений родительского сайта

  1. На странице сайта щелкните Действия сайта и выберите Разрешения сайта.

  2. На странице разрешений щелкните ленту Изменить.

  3. ЩелкнитеНаследовать разрешения.

  4. В окне сообщения, предупреждающем о том, что изменение унаследованных разрешений может запретить пользователям доступ к сайту, нажмите кнопку ОК.

На ленте будет указано, что сайт теперь наследует разрешения родительского сайта, которым должен быть сайт PWA. Структура разрешений родительского сайта теперь будет структурой разрешений сайта проекта, т. е. отдельные пользователи PWA теперь будут включены в группы сайта Microsoft Project Server.

Если конечная цель — предоставить большинству пользователей доступ к большинству сайтов, сайт проекта может наследовать разрешения родительского сайта от PWA, как описано выше. Перед выполнением этого действия следует убедиться, что у сайта PWA есть необходимые разрешения для всех пользователей, которым нужен доступ. Это связано с тем, что разрешениями пользователей в PWA будут разрешения пользователей в сайте проекта при выполнении процедуры наследования разрешений.

Если сайтов проекта много, можно использовать Windows PowerShell для автоматизации изменений. Следующая команда Windows PowerShell позволяет всем сайтам проекта, которые являются потомками указанного родительского сайта PWA, унаследовать разрешения этого сайта. Вы можете выполнить команду Windows PowerShell в командной консоли SharePoint 2010:

$site = Get-SPSite "<url of PWA>"
     Foreach ($web in $site.AllWebs) {
        $web.Update()
        $web.ResetRoleInheritance()
        $web.Update()
        }
     $site.Dispose()

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

Примечание

Если выбрать параметр Синхронизация на странице сайта проекта в параметрах сервера PWA, наследование будет нарушено. Не выбирайте этот параметр, если сайт проекта должен и дальше наследовать разрешения родительского сайта PWA.

В среде, в которой все сайты проекта наследуют разрешения PWA, могут быть определенные проекты с конфиденциальной информацией, для которых разрешениями и пользователями нужно управлять по отдельности. Можно использовать Windows PowerShell для установки свойства для этих сайтов, а затем использовать данное свойство для фильтрации в модифицированной версии команды Windows PowerShell, используемой для наследования (см. выше).

Отключение параметров разрешений сайта проекта

Вы также можете предотвратить автоматическое добавление пользователей в сайты проектов, отключив параметр "Разрешения сайта проекта" в разделе "Действующие политики" параметров сервера Project Web App. Если этот параметр включен, пользователи Project Web App автоматически синхронизируются с сайтами проекта, когда разрешения пользователей изменяются в Project Server 2010, руководитель проекта публикует проект или создается сайт проекта. Если этот параметр включен и выполняется одно из этих условий, указанные ниже действия выполняются автоматически.

  • Руководители проекта, опубликовавшие проект или обладающие разрешением для сохранения проекта, добавляются на сайт с разрешениями руководителя проекта (Microsoft Project Server).

  • Участники группы с назначениями в проекте добавляются на сайт с разрешениями участников группы (Microsoft Project Server).

  • Другие пользователи Project Server с разрешением "Просмотр сайта проекта" добавляются на сайт с разрешениями "Читатели" (Microsoft Project Server).

Если отключить этот параметр, добавление пользователей Project Server на сайт автоматически отключается, но уже добавленные пользователи не удаляются.

Отключение параметров разрешений сайта проекта

  1. На странице "Параметры сервера" в разделе "Действующие политики" выберите пункт Параметры подготовки сайтов проектов.

  2. На странице "Параметры подготовки сайтов проектов" в разделе Разрешения сайта проекта снимите флажок Автоматическая синхронизация пользователей Project Web App с сайтами проектов, когда такие сайты создаются, когда руководители проектов публикуют проекты и когда изменяются разрешения пользователей на сервере Project Server.

    Если этот флажок снят, пользователи Project Server никогда не синхронизируются с сайтами проектов.

  3. Нажмите кнопку Сохранить.

Дополнительные сведения о параметре "Разрешения сайта проекта" см. в статье Project Site Provisioning Settings (Project Server 2010 settings).

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

Далее представлены ошибки, которые могут появиться в журналах ULS, если в развертывании Project Server возникли проблемы с производительностью, вызванные превышением максимального рекомендуемого числа пользователей, обращающихся к сайтам проекта. Обычно пользователь, вызвавший проблему (возможно, за счет деактивации ресурса), видит кнопку Сохранить на странице "Редактирование пользователя" в уже нажатом положении, при этом отображается сообщение "Произошла непредвиденная ошибка". Код корреляции можно найти в журналах ULS, он позволит получить данные, связанные с взаимной блокировкой SQL. Запись уровня "Критический" будет выглядеть следующим образом:

  • 08/10/2011 12:17:02.85 w3wp.exe (0x2178) 0x314C База данных SharePoint Foundation 5586 Критическое неизвестное исключение SQL 1205. Дополнительные сведения об ошибке SQL Server см. ниже. Транзакция (код процесса ID 80) взаимно заблокирована с другим процессом и выбрана жертвой блокировки. Выполните транзакцию повторно. 886d9cdd-5c0c-4f3a-8f89-f4e8c92acde3

Ошибка с "Высоким" уровнем предоставляет больше информации о запросе, вызывающем проблему, и выглядит следующим образом. Запись была значительно укорочена, но обратите внимание на текст "proc_SecRemoveUserFromSite":


  • 08/10/2011 12:17:06.97 w3wp.exe (0x2178) 0x314C База данных SharePoint Foundation tzkv High SqlCommand: 'SET NOCOUNT ON; DECLARE @DN nvarchar(256),@LN nvarchar(128),@@DocUIVersion int,@@S uniqueidentifier,@@Level tinyint; DECLARE @ItemId int; DECLARE @@iRet int; DECLARE @ExtraItemSize int; SET @@Level = 1; SET @@S=@wssp0; EXEC @@iRet = proc_SecRemoveUserFromSite @@S, @wssp1, @wssp2 SELECT @ItemId = @wssp3 IF @@iRet <> 0 BEGIN GOTO DONE; END ;BEGIN TRAN IF NOT EXISTS( SELECT tp_ID FROM UserData WHERE tp_ListId = '06C8C9BB-B10B-4042-8859-9F9985E73E76' AND tp_ID = @ItemId AND tp_Level = 1 AND tp_RowOrdinal =0) BEGIN SELECT @ExtraItemSize = 0 EXEC @@iRet = proc_AddListItem @SiteId….

Запись с "Непредвиденным" уровнем, которая также может быть получена, выглядит следующим образом:


  • 08/10/2011 12:17:06.97 w3wp.exe (0x2178) 0x314C Среда выполнения SharePoint Foundation tkau Непредвиденное исключение System.Runtime.InteropServices.COMException: исключение от HRESULT: 0x80131904 в Microsoft.SharePoint.Library.SPRequestInternalClass.UpdateMembers(String bstrUrl, UInt32 dwObjectType, String bstrObjId, Guid& pguidScopeId, Int32 lGroupID, Int32 lGroupOwnerId, Object& pvarArrayAdd, Object& pvarArrayAddIds, Object& pvarArrayLoginsRemove, Object& pvarArrayIdsRemove, Boolean bRemoveFromCurrentScopeOnly, Boolean bSendEmail) at Microsoft.SharePoint.Library.SPRequest.UpdateMembers(String bstrUrl, UInt32 dwObjectType, String bstrObjId, Guid& pguidScopeId, Int32 lGroupID, Int32 lGroupOwnerId, Object& pvarArrayAdd, Object& pvarArrayAddIds, Object& pvarArrayLoginsRemove, Object& pvarArrayIdsRemove, Boolean bRemoveFromCurrentScopeOnly, Boolean bSendEmail) 886d9cdd-5c0c-4f3a-8f89-f4e8c92acde3

Сервер может не отвечать в течение 15-30 минут. В течение этого времени другие пользователи будут получать сообщения о превышении времени ожидания на своих страницах, а в журналах ULS могут быть представлены следующие записи:


  • 08/10/2011 12:20:22.30 w3wp.exe (0x1228) 0x1454 Мониторинг SharePoint Foundation b4ly Высокий Выход из области мониторинга (ExecuteStoredProcedureDataReader -- MSP_AUTH_GETUSERBYNAME). Время выполнения=120002.728838442 2be0491a-a64b-4237-8cfc-40342a374d49

  • 08/10/2011 12:20:22.30 w3wp.exe (0x1228) 0x1454 Project Server General 8ym5 Наблюдаемый PWA:http://<server>/PWA, ServiceApp:приложение-служба Project Web App, пользователь:, PSI: SqlException в DAL: <Ошибка><Класс>0</Класс><Номер строки>0</Номер строки><Номер>-2</Номер><Процедура></Процедура> <Сообщение> System.Data.SqlClient.SqlError: превышено время ожидания. Время ожидания был превышено до завершения операции или сервер не отвечает. </Сообщение> <CallStack> в System.Data.SqlClient.SqlConnection.OnError(исключение SqlException, Boolean breakConnection) в …