четверг, 22 декабря 2011 г.

План аварийного восстановления SharePoint 2010

Важно! Независимо от выбора решения аварийного восстановления, скорее всего, какая-то часть данных будет потеряна! (С) Microsoft


1. Создание ежедневных резервных копий баз данных, используемых SharePoint-сервером.
Необходимыми являются следующие базы данных:

  • SharePoint_AdminContent_[GUID]
  • SharePoint_Config
  • WSS_Content
Процесс развёртывания:
  • создаётся ферма в новом месте (желательно развёртывать с помощью скрипта) и восстанавливать резервные копии;
  • либо выполнить восстановление фермы из резервного решения MSC DPM 2010 (ссылка1, ссылка2).


  • Плюсы: самый простой способ и дешёвый в обслуживании.
  • Минусы: самый медленный вариант восстановления. Необходимо, чтобы сервера приложений были доступны и настроены.
2. Ежедневное создание виртуальных образов серверов фермы.


  • Плюсы: быстрый вариант восстановления, т.к. требуется минимальное время на настройку серверов.
  • Минусы: может требоваться много времени для ежедневного обслуживания, т.к. создание образа виртуальной машины может использовать много ресурсов и времени.
3. Развёртывание второй фермы


Процесс:
  • для баз данных настраивается асинхронное зеркальное отображение или доставка журнала, что обеспечивает обработку отката.
  •  зеркалирование базы данных можно выполнять только на один резервный (failover) сервер, доставку журналов - на несколько;
  • базы данных конфигурации SharePoint и центра админинстрирования должны дублироваться на резервном сервере (Failover);
  • обновления серверов должны применятся к обеим фермам по отдельности;
  • все настройки должны применятся к обоим фермам индивидуально;
  • рекомендуется, чтобы службы выполнялись на отдельной ферме служб, которая была доступна как для основной, так и резервной фермы. Некоторые службы не могут выполнятся межферменно, для них необходимо использовать различные стратегии обеспечения избыточности (ссылка);

Ссылки:


  • Плюсы: практически не тратиться время на восстановление, всё происходит моментально.
  • Минусы:
  • это решение более сложно в настройке и требует высокую квалификацию администратора;
  • более сложно в поддержке (синхронная установка обновлений и установок);
  • требует больших серверных ресурсов - разворачивание дублирующей фермы, дублирующего сервера баз данных.

Заключение
Необходимо использовать как минимум 2 из 3 решений для обеспечения плана аварийного восстановления. 

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

Второе решение позволяет не затрачивать времени на настройку систем.

Третье решение обеспечивает не только моментальное аварийное восстановление, но ещё и постоянную доступность фермы SharePoint.

Дополнительные материалы:

вторник, 20 декабря 2011 г.

Выпущен TFS Power Tools 2011 December

Ссылка - http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f

Изменения коснулись Best Practices Analyzer, TFS Backups, Alert Explorer, Process Editor и др.

вторник, 13 декабря 2011 г.

Полезные SQL-запросы


1. Список всех баз с информацией о настроенной модели восстановления (простая, полная)
SELECT name,DATABASEPROPERTYEX(name,'Recovery')
FROM sysdatabases
или
SELECT name,recovery_model_desc
FROM sys.databases

среда, 23 ноября 2011 г.

Best Practices Analyzer Tool for Team Foundation Server


Для мониторинга здоровья TFS в обязательном порядке необходимо использовать "Best Practices Analyzer Tool", которая входит в состав TFS Power Tools 2011. Данный продукт после сканирования выводит все ошибки TFS-сервера с подсказкой, как исправлять.

Ссылки:
TFS Power Tools August 2011;
- Документация "Best Practices Analyzer Tool" (Eng).



вторник, 22 ноября 2011 г.

Обновление шаблонов рабочих элементов в множестве TFS-проектов

Небольшой батник для массового обновления шаблонов рабочих элементов в нескольких проектах.

Решает задачу, когда необходимо в несколько проектов загрузить те же шаблоны рабочих элементов. Скрипт выручает, когда проектов больше 5.


понедельник, 21 ноября 2011 г.

Переименование русских полей на TFS в английские

Тем, кто устанавливал русскую версию TFS, могут возникнуть проблемы, когда они создают проект на основе английского шаблона проекта. Поэтому рекомендую переименовать поля на английский вариант и использовать английский шаблон проекта.

Я написал небольшой батник, который изменить на TF-сервере названия всех полей с русского варианта на английский.


четверг, 14 июля 2011 г.

SP1 для Project 2010

Вышел пакет обновления для Project 2010 (клиента).

Ссылки: 32-bit edition, 64-bit edition
Описание пакета обновления - здесь.

вторник, 12 июля 2011 г.

Вышли Service Pack 1 for Microsoft Project Server 2010 и Service Pack 1 for Microsoft SharePoint Server 2010

27 июня 2011 года вышли долгожданные первые пакеты обновления для SharePoint 2010 и Project Server 2010.


Service Pack 1 for Microsoft SharePoint Server 2010 (KB2460045)
Ссылки: английская версия, русская версия

Service Pack 1 for Microsoft Project Server 2010 (KB2460047)
Ссылки: английская версия, русская версия
Инструкция по развертыванию - здесь (русская версия).

TFS SP1 Cumulative Update 1

13 июня 2011 года вышло объединенное обновление 1 для TFS 2010 с установленным SP1.

Ссылка на TFS SP1 CU 1 - здесь.
Ссылка на описание - здесь.

пятница, 20 мая 2011 г.

Аннонсированы выпуски SharePoint Server 2010 SP1 и Project Server 2010 SP1

В июне 2011 года (конкретная дата не уточняется) выйдут пакеты обновления для SharePoint 2010 и Project Server 2010.

Основным нововведением я вижу поддержку Chrome и Firefox для Project Server 2010 и более удобные способы архивирования на SharePoint Server 2010.

Более подробно:
blogs.office.com
blogs.technet.com
blogs.msdn.com

пятница, 6 мая 2011 г.

TFS Integration Platform

TFS Integration Platform позволяет мигрировать данные между различными системами контроля версия и системами баг-трекинга. Например, TFS Integration Platform позволяет мигрировать данные между такими системами, как TFS 2008/2010, SVN, VSS, IBM Clear Case, IBM Clear Quest, HP QualityCenter и др.


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


Некоторые возможности утилиты TFS Integration Platform:

1. Возможность задания поля-источника и поля-получателя. Необходимо учитывать, чтобы тип полей был совместим.
Пример:
<MappedFields>
    <MappedField LeftName="headline" RightName="System.Title" MapFromSide="Left" valueMap="" />
    <MappedField LeftName="owner" RightName="System.AssignedTo" MapFromSide="Left" valueMap="" />
    <MappedField LeftName="description" RightName="Microsoft.VSTS.TCM.ReproSteps" MapFromSide="Left" valueMap="" />
    <MappedField LeftName="actual_results" RightName="Microsoft.VSTS.CMMI.Symptom" MapFromSide="Left" valueMap="" />
</MappedFields>

2. Перенос связей между рабочими элементами. Т.е. если у вас в одной системе есть связь между двумя задачами, то эта связь сохраняется при миграции этих задач в TFS

3. Перенос имён пользователей, включая доменные учётные записи. Если рабочий элемент назначен доменной учётной записи, при миграции в TFS эта информация сохраняется. Можно задать правило, по которому при миграции какая-либо учётная запись будет заменятся на другую.

4. Агрегирование полей. При миграции можно настроить правило, по которому в одно поле будут перенесены данные из нескольких полей, разделённых заданным текстом, если это необходимо.
Пример:
<AggregatedFields>
  <FieldsAggregationGroup MapFromSide="Left" TargetFieldName="Microsoft.VSTS.TCM.SystemInfo" Format="Bug Version: {0} &#x0D; Bug Build: {1} &#x0D; Bug Module: {2} &#x0D; Bug Program: {3} &#x0D; Bug Language: {4}" >
    <SourceField Index="0" SourceFieldName="bug_module_ver" />
    <SourceField Index="1" SourceFieldName="bug_module_builld" />
    <SourceField Index="2" SourceFieldName="bug_module" />
    <SourceField Index="3" SourceFieldName="bug_program" />
    <SourceField Index="4" SourceFieldName="bug_language" />
  </FieldsAggregationGroup>
</AggregatedFields>

где тэг "&#x0D;" ставится для перехода на новую строку.

5. Перенос файлов, прикреплённых к рабочим элементам.

6. Возможно задание маппинга полей. Т.е. чтобы при миграции одно значение заменялось на другое. Например: если вы переносите из ClearQuest в TFS поле State (Состояние), вы можете настроить правило, по которому будут заменяться значения "Opened" > "Active", "Submitted" > "Proposed", "Done" > "Resolved" и т.п.
Пример:
<MappedFields>
    <MappedField LeftName="State" 
        RightName="System.State" 
        MapFromSide="Left" 
        valueMap="StateMap" />
</MappedFields>
<ValueMap name="StateMap">
    <Value LeftValue="Resolving" RightValue="Proposed" />
    <Value LeftValue="Getting_Info" RightValue="Active" />
    <Value LeftValue="Modelling" RightValue="Active" />
    <Value LeftValue="Eliminating" RightValue="Active" />
    <Value LeftValue="Testing" RightValue="Resolved" />
    <Value LeftValue="Closed" RightValue="Closed" />
    <Value LeftValue="Shipment" RightValue="Closed" />
</ValueMap>

7. Для мигрированного рабочего элемента задание для поля значения по умолчанию.
Например, вы переносите сущность Feature (из CQ) в Requirement (в TFS). Вам необходимо для созданного в TFS рабочего элемента задать значение поля Requirement Type равным Feature, делается это как показано в примере ниже.
Пример:
<MappedFields>
    <MappedField LeftName="@@MissingField@@" 
        RightName="Microsoft.VSTS.CMMI.RequirementType" 
        MapFromSide="Left" 
        valueMap="DefaultRequirementType" />
</MappedFields>
<ValueMap name="DefaultRequirementType">
    <Value LeftValue="" RightValue="Feature" />
</ValueMap>


Советую использовать эту утилиты, т.к. её возможности очень широкие.


TFS Integration Platform скачать можно здесь.


среда, 4 мая 2011 г.

Изменение имени поля в TFS

После правки типового шаблона проекта иногда требуется изменить имена полей, которые уже созданы. Например, при создании поля была опечатка. Тогда, если вы попытаетесь загрузить конфигурационный файл рабочего элемента с исправленным именем поля на сервер, появиться примерно такая ошибка:

TF212018: Work item tracking schema validation error: TF26177: The field Company.Feedback.CompletedWork cannot be renamed from 'CompanyCompletedWork' to 'CompanyCompletedWork1'.

Также, если у вас был в одной коллекции проектов были развёрнуты проекты на основе русского и английского шаблонов, могут возникнуть проблемы с отчётами. Проблема в том, что имена полей (Name) должны быть одинаковыми для соответствующих идентификаторов полей (RefName). T.е. поле с идентификатором refname=System.Title должно иметь одно имя (name), например Title, во всех проектах коллекции. В английском и русском шаблонах проектов идентификаторы одни, а имена полей разные, что недопустимо для отчётов.

Чтобы привести поле к одному виду, нужно использовать команду witadmin changefield.

Пример использования команды:
>> witadmin changefield /collection:http://tfs:8080/tfs/CollectionTFS  /n:System.State /name:"Title"
Подробнее о команде - здесь.

Для просмотра атрибутов поля перед переименованием используйте команду witadmin listfields.

Пример использования команды:
>> witadmin listfields /collection:http://tfs:8080/tfs/CollectionTFS /n:System.State
Подробнее - здесь.

вторник, 3 мая 2011 г.

SharePoint 2010 Administration Toolkit v2.0

Вышла обновлённая версия SharePoint 2010 Administration Toolkit (v. 2.0).

В новую версию входит SharePoint Diagnostic Studio. Это удобный инструмент для мониторинга за сервером SharePoint.



Перед установкой на сервере SharePoint и клиентской машине (с которой вы будете вести мониторинг) в PowerShell нужно запустить команду:
>> Enable-PSRemoting

Файл установки - здесь.
Информация из MSDN - здесь.

пятница, 29 апреля 2011 г.

Утилита "BgInfo" выведет информацию о системе на рабочий стол.

Многие, наверное, видели в веб-кастах Microsoft на рабочем столе сгенерированную краткую информацию о системе. Это очень удобно, особенно когда у вас много серверов и вы работаете с ними через удалённый рабочий стол.


В этом вам поможет утилита BgInfo.

Правило отображения и выводимую информацию можно задавать самому.



Если возникают проблемы с сохранением настроек утилиты после перезагрузки, тогда используйте предложенный ниже сценарий.

1. Перенесите файл bginfo.exe в директорию Windows (обычно C:\Windows\)
В свойствах файла выберите вкладку "Безопасность". Нажмите "Добавить" и выберите "Authenticated Users". Добавьте пользователей этой группы и дайте им право "Полный доступ".

2. Запустите bginfo.exe.
Настройте параметры. Выберите меню "File" - "Save as". Сохраните файл как bginfo.bgi в директории Windows. Не закрывайте bginfo.exe.

3. Создайте в директории Windows папку bginfo и назначьте право "Полный доступ" для пользователей группы "Authenticated Users" (также, как делали это в пункте 1).
В bginfo.exe выберите меню "Bitmap" - "Location.." - "Other directory", введите туда %windir%\bginfo\bginfo.bmp, после этого нажмите кнопку "Ок" дважды.

4. Перейдите в папку "C:\Documents and Settings\All Users\Start Menu\Programs\Startup" (или C:\Users\All Users\Start Menu\Programs\Startup).
Создайте в ней ярлык, в поле "Укажите расположение объекта" введите %windir%\bginfo.exe /timer:0 /i%windir%\bginfo.bgi. Нажмите "Далее" и "Готово".


Ссылка на страницу утилиты BgInfo - здесь.
Полезная информация в другом блоге - здесь.


суббота, 2 апреля 2011 г.

Ошибка SharePoint "An unhandled exception ('System.Security.Cryptography.CryptographicException') occurred in OWSTIMER.EXE [nnnn]"

На одном из серверов в ферме SharePoint я заметил следующую ошибку:


Выводилась примерно каждые 20 секунд.

Проблема в том, что на этом сервере установлен Vusial Studio. Для решения конечно можно удалить Visual Studio с сервера SharePoint.

Есть  более простые решения.
Решение 1. Отключение отладки через Visual Studio.
  • В меню Tools (Сервис) выберите пункт Options (Параметры).
  • В окне Options (Параметры) выберите папку Debugging (Отладка).
  •  В папке Debugging (Отладка) выберите страницу Just-In-Time.
  •  В поле Enable Just-In-Time debugging for these types of code (Включить JIT–отладку для следующих типов кода) отмените выбор соответствующих типов : Managed, Native или Script.
  • Чтобы отключить JIT–отладку, если она была включена, необходимы права администратора. 
  • Нажмите кнопку ОК.
Решение 2. Правка реестра Windows.
  • Меню Пуск выберите команду выполнить .
  • В поле Открыть введите regedit, нажмите кнопку ОК .
  • В окне Редактора реестра найдите и удалите следующие разделы реестра:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger
  • Если компьютер работает под управлением 64-разрядной операционной системе, также удалите следующие разделы реестра:
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger
  • Закройте окно Редактора реестра .

четверг, 24 марта 2011 г.

Перенос списка/библиотеки с одного веб-сайта SharePoint на другой веб-сайт

Экспортировать список/библиотеку SharePoint с веб-сайта можно 2 способами, через PowerShell и через Центр администрирования SharePoint. Я покажу как это делается через Центр администрирования. Импортировать список/библиотеку на веб-сайт SharePoint можно только через PowerShell.

Экспорт
1. Зайти в Центр администрирования SharePoint, далее Резервное копирование и восстановление > Экспорт сайта или списка.
2. Выбрать семейство веб-сайтов, сайт и список, которые необходимо экспортировать и выбрать файл, куда нужно экспортировать.
В итоге, у вас должно быть всё настроено аналогично рисунку ниже.

3. Нажать "Начать экспорт".

Импорт
1. Запустить PowerShell SharePoint 2010 на сервере SharePoint.
2. Импорт списка/библиотеки выполняется командой Import-SPWeb (подробнее о команде).
В PowerShell выполните команду:
> Import-SPWeb -Identify [URL-адрес_сайта] - Path [путь_к_файлу_экспорта] [-Force] [-NoFileCompression]
Например:
> Import-SPWeb -Identify http://portal/library - Path \\backup\share\export.cmp 

После этого можете проверять, перенесен ли список/библиотека.

среда, 23 марта 2011 г.

Настройка RBS с провайдером FILESTREAM для SharePoint 2010

  1. Включить FILESTREAM на SQL-сервере, где находятся базы данных SharePoint 2010. Для этого:
    • Запустите Диспетчер конфигураций SQL Server (Пуск > Все программы > Microsoft SQL Server 2008 R2 > Средства настройки);
    • Выделите службу SQL Server, в контекстном меню этой службы выберите Свойства;
    • Выберите вкладку FILESTREAM;
    • Установите флажок Разрешить FILESTREAM при доступе через Transact-SQL. Другие галочки не имеют значения для дальнейшей нашей настройки и зависят от ваших пожеланий. Нажмите Применить. Важно! Windows share name должно быть таким же, какое имя экземпляра SQL (Instance name). По умолчанию оно – MSSQLSERVER.
    • Запустите среду SQL Server Management Studio и создайте запрос:
      EXEC sp_configure filestream_access_level, 2
      RECONFIGURE

    Подробнее о включении FILESTREAM на SQL-сервере здесь.
  2. Подготовка хранилища BLOB-объектов.
    Для этого нужно выполнить поочерёдно 3 SQL-запроса над базой данных контента SharePoint-приложения, в которой вы хотите использовать FILESTREAM.
    В запросах замените [WSS_Content] на имя вашей базы данных контента web-приложения.
    Также, в запросе №3 замените путь «C:\Blobstore» на свой, где будут хранится данные BLOB-данные с SharePoint (Важно: эта папка не должна существовать, SQL Server сам её создаст).
    • Запрос №1:
      USE [WSS_Content]
      IF NOT EXISTS (SELECT * FROM sys.symmetric_keys WHERE name = N'##MS_DatabaseMasterKey##')CREATE MASTER KEY ENCRYPTION BY PASSWORD = N'Admin Key Password !2#4'
    • Запрос №2:
      USE [WSS_Content]
      IF NOT EXISTS (SELECT groupname FROM sysfilegroups WHERE groupname=N'RBSFilestreamProvider')ALTER DATABASE [WSS_Content] ADD filegroup RBSFilestreamProvider CONTAINS FILESTREAM
    • Запрос №3:
      USE [WSS_Content]
      ALTER DATABASE [WSS_Content] ADD FILE (name = RBSFilestreamFile, FILENAME = 'c:\Blobstore') TO filegroup RBSFilestreamProvider

  3. Установка удалённого хранилища на Web-сервер.
    Для этого скачать RBS (Общая ссылка, RBS x86, RBS x64, RBS IA64).
    Скопировать его на веб-сервер SharePoint.
    На веб-сервере запустить командную строку от имени администратора и выполнить следующую команду:
    > msiexec /qn /lvx* rbs_install_log.txt /i RBS_X64.msi TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME="WSS_Content" DBINSTANCE="DBInstanceName" FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FilestreamProvider_1 где, RBS_X64.msi – это соответственно имя установочного файла,
    “WSS_Content” – имя вашей базы данных контента веб-приложения,
    “DBInstanceName” – имя SQL-сервера.
  4. Добавить RBS на все дополнительные веб-сервера и на SQL-сервер.
    Для этого выполнить следующую команду от имени администратора:
    > msiexec /qn /lvx* rbs_install_log.txt /i RBS_X64.msi DBNAME="WSS_Content" DBINSTANCE="DBInstanceName" ADDLOCAL="Client,Docs,Maintainer,ServerScript,FilestreamClient,FilestreamServer"
  5. Убедиться, что RBS установился нормально.
    В базе данных контента должны появиться таблицы, начинающиеся на «mssqlrbs».
  6. Запустить PowerShell for SharePoint 2010 и выполнить поочерёдно команды:
    > $cdb = Get-SPContentDatabase –WebApplication http://имя_сайта
    > $rbss = $cdb.RemoteBlobStorageSettings
    > $rbss.Installed()
    > $rbss.Enable()
    > $rbss.SetActiveProviderName($rbss.GetProviderNames()[0])
    > $rbss
  7. Тестирование хранилища.
    Загрузите файл больше 100 кб в библиотеку документов на веб-сайт SharePoint. Размер папки файлов, которую мы указали в  шаге 2 (запрос №3) должен увеличится на размер закаченного в SharePoint файла.
    Дополнительная информация здесь.

    среда, 9 марта 2011 г.

    Выпущены пакеты обновления - VS 2010 SP 1 / TFS 2010 SP 1 / TFS Project Server Integration Feature Pack

    Для скачивания будут доступны с 10 марта 2011.


    Visual Studio 2010 Service Pack 1
    Ссылка: http://go.microsoft.com/fwlink/?LinkId=209902
    Описание: http://support.microsoft.com/kb/983509


    TFS 2010 Service Pack 1
    Ссылка: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=43d9f36a-6347-4ac4-86b6-cee4cd54b5d2
    Описание: http://support.microsoft.com/kb/2182621


    TFS Project Server Integration Feature Pack
    Документация: http://go.microsoft.com/fwlink/?LinkID=210709

    пятница, 4 марта 2011 г.

    TFS Power Tools March 2011

    Вышел TFS Power Tools March 2011, скачать его можно отсюда - http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f

    Основные новшества - более широкие возможности резервного копирования и восстановления баз TFS и расширенная работа с Windows Explorer. 

    среда, 2 марта 2011 г.

    Уменьшение времени отправки почтовых оповещений с TFS 2010

    Для уменьшения времени отправки mail-оповещений с сервера TFS нужно создать файл (например, "C:\Script.ps1") и записать в него следующий скрипт:
    [Reflection.Assembly]::Load("Microsoft.TeamFoundation.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")

    # Modify the TFS configuration server URL as necessary.
    $configServer = new-object Microsoft.TeamFoundation.Client.TfsConfigurationServer "http://localhost:8080/tfs/"

    # Get the TF registry service.
    $tfsRegService = $configServer.GetService([Microsoft.TeamFoundation.Framework.Client.ITeamFoundationRegistry])

    # Set the notification delay to 30 seconds. All collections will use this delay unless they override this value in the collection hive.
    $tfsRegService.SetValue("/Service/Integration/Settings/NotificationJobDelay", 30)

    В последней строчке число "30" можно изменить - это количество секунд ожидания для оповещения.

    После этого на сервере TFS запустить PowerShell и выполнить две команды:
    PS C:\> powershell Set-ExecutionPolicy RemoteSigned
    PS C:\> powershell c:\Script.ps1

    Далее, необходимо перезапустить IIS сервер. Это можно сделать через командную строку Windows или через PowerShell следующей командой: 
    >> iisreset /noforce


    вторник, 1 марта 2011 г.

    Включение логирования Visual Studio

    1. Перейти в папку
    64bit: C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
    32bit: C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE

    2. Закрыть все экземпляры Visual Studio, если они открыты.
    Открыть файл "devenv.exe.config" для редактирования в блокноте.

    3. Вставить следующий текст внутри секции :
    <system.diagnostics>
          <switches>
            <add name="TeamFoundationSoapProxy" value="4" />
            <add name="VersionControl" value="4" />
          </switches>
          <trace autoflush="true" indentsize="3">
            <listeners>
              <add name="myListener"              type="Microsoft.TeamFoundation.TeamFoundationTextWriterTraceListener,Microsoft.TeamFoundation.Common, Version=10.0.0.0,
           Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" initializeData="c:\logs\vs.log" />
              <add name="perfListener" type="Microsoft.TeamFoundation.Client.PerfTraceListener,Microsoft.TeamFoundation.Client,
              Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
            </listeners>
          </trace>
    </system.diagnostics>    


    Путь к лог-файлу можно изменить на свой (initializeData="c:\logs\vs.log").
    Сохранить и закрыть файл devenv.exe.config.

    4. Запустить Visual Studio 2010.

    четверг, 24 февраля 2011 г.

    Восстановление коллекции TFS из неотсоединённой базы коллекции

    Для того, чтобы без проблем перенести базу колекции TFS на другой сервер, нужно:
    1. отсоединить коллекцию (detach collection) в консоле администрирования TFS;
    2. Отсоединить файлы базы данных коллекции на SQL-сервере. 
    3. Перенести их на другой сервер и присоединить эту базу данных на SQL-сервере.
    4. Присоединить коллекцию в консоли администрирования TFS и запустить её.

    Иногда бывают сложности с 1-м шагом. Коллекцию не всегда можно отсоединить в консоли администрирования TFS, это случается по разным причинам. Но мы можем развернуть на другом сервере и базу неотсоединённой коллекции.

    Если мы не можем выполнить шаг 1, тогда нам необходимо выполнить следующую команду в командной строке вместо шага 4:
    TFSConfig Recover /ConfigurationDB:SQLServer\InstanceName;TFS_ConfigurationDBName /CollectionDB:SQLServer\instanceName;TFS_CollectionDBName


    Пример для следующих исходных данных
      SQL-сервер: QServ
      Instance: MSSQLSERVER (по умолчанию)
      Конфигурационная база TFS: TFS_Configuration
      База TFS-коллекции: TFS_Test

    Команда:
    TFSConfig Recover /ConfigurationDB:QServ\MSSQLSERVER;TFS_Configuration /CollectionDB:QServ\MSSQLSERVER;Tfs_Test

    Обязательно проверьте права доступа своей учётной записи. Например, учётная запись любого уважаемого администратора TFS :) должна удовлетворять следующим условиям:
    - находится в списке администраторов в консоли администрирования TFS;
    - находится в локальной группе Administrators на сервере;
    - иметь роль sysadmin на SQL-сервере.


    пятница, 18 февраля 2011 г.

    Настройка интеграции TFS 2010 and Project Server 2010 (Project Server Integration Feature Pack)

    У вас должно быть установлено:
    - TFS 2010;
    - Project Server 2010;
    - Visual Studio 2010 (для использования интеграции пользователями) + Team Explorer.

    Установка:
    1. На сервер с TFS установить SP1 для TFS 2010 (ссылка);
    2. На клиентские компьютеры установить SP1 для Visual Studio 2010 (ссылка);
    3. На Project Server установить Feature Pack for Visual Studio Team Foundation Server and Project Server Integration (ссылка, доступно только подписчикам MSDN).

    Настройка:
    4. На компьютере с установленным Team Explorer 2010 открыть командную строку и войти в каталог, содержащий утилиту TFSAdmin.
    Для x86: C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE
    Для x64: C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE

    5. Для регистрации PWA выполнить команду:
    >> TfsAdmin ProjectServer /RegisterPWA /pwa:ProjectServerUrl /TFS:tfsUrl
    Например:
    >> TfsAdmin ProjectServer /RegisterPWA /pwa:http://pserver/pwa /TFS:http://tfserver:8080/tfs/

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

    На этом шаге могут возникнуть проблемы с разрешениями. Например, у меня была проблема с тем, что пользователь, под которым был установлен TFS, не имел доступ на портал Project Server. Подробнее о назначении разрешений здесь.

    6. Присоединить коллекцию TFS через команду:
    >> TfsAdmin ProjectServer /MapPWAtoCollection /pwa:ProjectServerUrl /collection:tfsCollectionUrl
    Например:
    >> TfsAdmin ProjectServer /MapPWAtoCollection /pwa:http://pserver/pwa /collection:http://tfserver:8080/tfs/DefaultCollection

    7. Далее, необходимо выполнить сопоставление полей TFS и Project Server. Для использования сопоставления полей по умолчанию, нужно выполнить команду:
    >> TFSAdmin ProjectServer /UploadFieldMappings /collection:tfsCollectionUrl /usedefaultfieldmappings
    Подробнее здесь.

    8. Настройка связи проекта на Project Server и TFS проекта.
    Команда:
    >> TfsAdmin ProjectServer /MapPlanToTeamProject /collection:tfsCollectionUrl /enterpriseproject:EnterpriseProjectName /teamproject:TeamProjectName /workitemtypes:ListOfWorkItemTypes /nofixedwork /projectfieldforworkitemtype:ProjectFieldName
    Например:
    >> TfsAdmin ProjectServer /MapPlanToTeamProject /collection:http://tfserver:8080/tfs/DefaultCollection /enterpriseproject:"Simple Project" /teamproject:"TFS Project" /workitemtypes:"User Story,Task" /nofixedwork

    9. Просмотр информации о настроенной интеграции TFS-Project
    а.) TFS-коллекции, участвующие в интеграции:
    >> TfsAdmin projectserver /getmappedCollection /TFS:http://tfserver:8080/tfs/
    б.) Веб-сайты PWA, участвующие в интеграции:
    >> TfsAdmin ProjectServer /GetRegisteredPWA /TFS:http://tfserver:8080/tfs
    в.) Все проекты Project Server, связанные с TFS-проектами:
    >> TfsAdmin projectserver /getmappedprojects /collection:http://tfserver:8080/tfs/DefaultCollection

    Некоторые ответы:
    1. Работает ли интеграция с Project Server 2007?
    - да, только нужно установить SP2 для Project Server 2007 (ссылка).
    2. Утверждения, которые отсылаются в Project Professional, может утверждать только владелец проекта.. Это необходимо помнить.

    Полезные ссылки:
    1. Интеграция TFS 2010 и Project Server 2010 (ссылка);
    2. Статья по интеграции TFS и Project Server 2010 (ссылка);
    3. Необходимое ПО (ссылка);
    4. Настройка интеграции TFS - Project Server (ссылка);
    5. Видео "Microsoft Project 2010 and TFS 2010, better together" (ссылка);
    6. Social.MSDN (ссылка).


    вторник, 8 февраля 2011 г.

    Ошибка SharePoint "База данных в диапазоне совместимости. Рекомендуется произвести обновление"

    Обычно, после установки некоторых Fix Pack для SharePoint Server появляется сообщение о необходимости провести обновление баз данных.
    Проверить это можно в центре администрирования SharePoint, выбрав пункт Обновление и перенос > Просмотр состояния базы данных.


    Для исправления, нужно на сервере в Power Shell выполнить команду:
    C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN>
    PSConfig -cmd upgrade -inplace v2v -passphrase ПарольнаяФразаНаSharePoint -wait


    После этого я ещё выполнил эту команду:
    PSConfig.exe -cmd upgrade -inplace b2b -force -cmd applicationcontent -install -cmd installfeatures

    пятница, 21 января 2011 г.

    Миграция данных с Project Server 2007 на Project Server 2010


    Выполнять последовательно по пунктам:

    1. Создать резервные копии баз данных Project Server 2007 на MS SQL Server:
                ProjectServer_Archive;
                ProjectServer_Draft;
                ProjectServer_Published;
                ProjectServer_Reporting;
                WSS_Content (база SharePoint, содержащая PWA и сайты проектов).
    Чтобы создать резервную копию базы данных, нужно войти в SQL Management Studio, подключиться к серверу баз данных, на котором находятся базы данных Project Server 2007. Далее, выделите базу данных, в контекстном меню выберите «Task» – «Back Up..».


    2. Восстановить резервные копии баз данных на SQL-сервере, который обслуживает SharePoint 2010 и Project Server 2010.

    3. На SharePoint 2010 не должно быть никаких веб-приложений.
    Создать новое веб-приложение на порту 80 с новой базой данных.

    4. Выполнить присоединение базы данных PWA на SharePoint Server 2010.
    Для этого, выполнить команду в Power Shell:
    stsadm -o addcontentdb -url http://ИмяСервера/PWA -databaseserver ИмяSQLСервера -databasename ИмяМигрированнойБазыSharePoint
    Например:
    stsadm -o addcontentdb -url http://portal/PWA -databaseserver sqlserv -databasename WSS_CONTENT

    5. Создать сайт PWA в процессе Project Server на SharePoint 2010.

    6. Зайти на сайт PWA. Далее, Параметры сервера > Массовое обновление сайтов. Галочки «Обновление типов контента» и «Синхронизация разрешений сайтов» нужно оставить включёнными. Проделать обновление несколько (!) раз, пока все веб-сайты проектов не появятся на портале.



    7. Проверить работу портала PWA.