Как я могу получить уведомления от своего сервера TFS, когда объект работы изменяется?

Я пишу простой пользовательский браузер объекта работы, и я хотел бы, чтобы он следовал за изменениями в реальном времени, оказывающимися работать объекты над моим сервером TFS.

Например, если бы кто-то изменил Заголовок объекта работы или состояние, я обновил бы свое дерево объекта работы с этой новой информацией.

Как я могу подписаться на такие события?

5
задан Max Galkin 27 February 2010 в 14:51
поделиться

2 ответа

Вы можете использовать механизм событий TFS, чтобы подписаться на конечную точку веб-службы, чтобы получать уведомления при изменении рабочего элемента . Однако это предназначено для связи сервер-> сервер, и этот механизм push-уведомлений плохо работает для клиентских приложений.

Вместо этого я бы порекомендовал вам использовать TFS .NET Api для периодического опроса сервера на предмет обновлений. Чтобы сделать операцию опроса эффективной после того, как вы получили полный набор результатов с помощью вашего запроса, вы можете изменить WIQL, чтобы просто искать рабочие элементы, измененная дата которых больше, чем последний раз, когда вы опрашивали сервер.

Причина, по которой модель «pull» работает лучше, чем модель «push» в этом случае, заключается в следующем:

  1. Чтобы отправить push-уведомление веб-службы на ваш клиентский компьютер, экземпляр TFS должен иметь возможность общаться напрямую к порту на вашем клиентском ящике. Это означает, что у вас должен быть открыт соответствующий порт и разрешать трафик в этом направлении от вашего брандмауэра.
  2. Для создания push-уведомлений требуются права пользователя уровня администрирования Team Foundation Server, что означает, что только пользователи-администраторы могут использовать ваше приложение.
  3. Сервер будет пытаться отправлять уведомления подписчикам, пока подписчик не удалит подписку на событие.Это означает, что если ваше приложение вылетает или не очищает свои подписки правильно, сервер будет пытаться отправлять сообщения машинам, которые их не слушают. Это приведет к израсходованию ресурсов на вашем сервере TFS и появлению ошибок в журналах событий сервера TFS. Вашему приложению потребуется значительный объем логики, чтобы гарантировать, что оно записывает, какие подписки имеются, и управляет ими соответствующим образом.

Надеюсь, что это имеет смысл.

6
ответ дан 14 December 2019 в 19:10
поделиться

Для оповещений по электронной почте

Клиент TFS включает подписку на изменения для любых изменений в ваших рабочих элементах («предупреждения проекта» в контекстном меню узла командного проекта в Team Explorer).

Для подписки на рабочие элементы на основе других критериев (включая все для командного проекта) TFS Power Toys включает редактор предупреждений (Power Toys добавляют узел предупреждений под каждый командный проект в Team Explorer).

Для вызовов веб-служб

Это также возможно (например, чтобы сервер прослушивал): подробности см. В Visual Studio SDK.

-1
ответ дан 14 December 2019 в 19:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: