пятница, 30 сентября 2011 г.

Создание сервиса для TFS


TFS позволяет создавать собственные веб-сервисы и вызывать их на определенные евенты.
Если открыть Alerts Explorer (Team Explorer -> RMB -> Alerts Explorer) увидим, что по умолчанию существует 3 типа эвентов:
  • Изменен рабочий элемент
  • Прошёл билд
  • Произведен check-in
Чтобы создать новое напоминание, идем в Alerts Explorer, жмем кнопку New Alert, выбираем Blank Alert для нужного типа эвента. Далее для нового эвента в поле Formatting выбираем SOAP, в поле Send To пишем адрес нашего сервиса вида "http://tfssite/ServiceApplication/NewService.asmx".

Важно: чтобы создать SOAP alarm нужно иметь права администратора коллекции или администратора сервисов.

Но чтобы использовать сервис - нужно его создать. Создаем обычный проект веб-сервиса в студии, добавляем метод Notify (именно он будет вызван, пример можно найти тут). В веб сервисе нам скорей всего понадобится обратиться к TFS, запросить какие-то данные (инфу для TFS2010 можно найти тут).

Важно: если нужно обратиться к TFS и получить оттуда рабочие элементы, используя сервис WIStore, то в web.config добавляем адрес директории с кэшем:
    <appSettings>
        <!-- Add reference to TFS Client Cache -->
        <add key="WorkItemTrackingCacheRoot" value="c:\TFSClientCache" />
    </appSettings>
В противном случае при попытке инициализировать WIStore - получим исключение от Microsoft.TeamFoundation.WorkItemTracking.Client.Cash;

Созданный сервис добавляем на сайт с TFS, апп пул ему даем такой же как у TFS. Не забываем дать юзеру под которым работают TFS сервисы, права на папку с сервисом (на физическую папку на харде).