Подтвердить что ты не робот

Редактировать предупреждения других пользователей для проекта в TFS

Я неожиданно беру на себя ответственность за предыдущего администратора нашей системы TFS, который внезапно покинул компанию. Я был назначен администратором TFS и на сервере приложений TFS, прежде чем это произошло, но по-прежнему есть хотя бы одна вещь, которую я не могу понять. Кажется, есть несколько предупреждений, настроенных под предыдущей учетной записью администратора, которая отправляет нам письмо всем пользователям всякий раз, когда файл проверен. Я не могу точно сказать, как выглядит эта подписка, но я предполагаю это либо в Диалоговое окно "Оповещения о проекте" для проекта или предупреждение, настроенное с помощью редактора предупреждений TFS Power Tools. Я не вижу предупреждений, настроенных другими пользователями в этих областях. Есть ли какой-либо способ прямого редактирования таблицы tbl_subscription непосредственно, чтобы попытаться удалить или изменить эти предупреждения? (Я думаю, что я вижу предупреждение в этой таблице SQL, но я не хочу напрямую взламывать базу данных.)

4b9b3361

Ответ 1

Добро пожаловать в мир TFS - жаль, что ваше крещение будет одним из огней.

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

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

CAVEAT - это проверено с гарантией "Работы на моей машине". Но если вы удалите неправильную подписку, вы рискуете испортить свою инсталляцию TFS. Поэтому берем резервные копии и тщательно проталкиваемся...

Для начала:

Войдите в систему TFS в качестве пользователя администратора TFS (TFSSETUP) поверх удаленного рабочего стола, а затем перейдите к следующему адресу в Internet Explorer:

http://localhost:8080/Services/V1.0/EventService.asmx

Это методы веб-службы Event Service. Первый, который вы хотите посмотреть, это метод EventSubscriptions: -

http://localhost:8080/Services/V1.0/EventService.asmx?op=EventSubscriptions

В поле userid введите звездочку (*) и нажмите клавишу вызова.

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

Затем перейдите к методу отмены подписки:

http://localhost:8080/Services/V1.0/EventService.asmx?op=UnsubscribeEvent

Введите идентификатор уведомления, которое вы хотите удалить, и нажмите клавишу вызова. Повторите все события, которые вы хотите удалить.

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

Надеюсь, что это поможет - удачи.

Martin.

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

Ответ 2

Я очень рад сказать, что в текущей версии TFS и в Visual Studio Team Services администраторы могут управлять другими оповещениями пользователя с помощью Team Web Access. К счастью, это должен быть сценарий разочарования в прошлом.

У меня есть еще одна информация, доступная в блоге, написанном для этой темы здесь: http://www.edsquared.com/2012/02/09/Creating+EMail+Alerts+For+Team+Members+In+TFS.aspx

enter image description here

Ответ 3

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

Ответ 4

Я согласен с Мартином в том, что я не редактирую базу данных напрямую, но этот запрос может помочь с его первым шагом (найти идентификатор события, из которого вы хотите отказаться от подписки):

SELECT 
ES.Id, 
U.display_name, 
ES.*
  FROM [Tfs_iSystems].[dbo].[tbl_EventSubscription] ES
 INNER JOIN [Tfs_Configuration].dbo.tbl_security_identity_cache U
 ON ES.SubscriberId = U.tf_id

Я нашел использование XML, созданного веб-сервисом, громоздким для работы. Если у вас есть идентификатор, который вам нужен, я бы рекомендовал отказаться от подписки с помощью веб-службы:

http://localhost:8080/tfs/DefaultCollection/Services/V1.0/EventService.asmx?op=UnsubscribeEvent

Обратите внимание, что это для TFS2010

Ответ 5

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

"HTTP://локальный: 8080/TFS/_tfs_resources/Услуги/v1.0/EventService.asmx"

Ответ 6

Это работало для меня на TFS 2010. в основном там хранимая процедура, которая удаляет подписки в базе данных TFS.

  • Подключение к машине TFS
  • Запустить ssms
  • Выберите локальный компьютер в качестве устройства для подключения.
  • В проводнике объектов найдите базу данных с именем tfs_yourprojectname.
  • Найдите таблицу с именем tbl_EventSubscription и щелкните правой кнопкой мыши = > выберите топ 1000
  • Посмотрите список подписки и определите идентификатор того, который хотите удалить.
  • Найдите хранимую процедуру с именем prc_UnsubscribeEvent в проводнике объектов, щелкните правой кнопкой мыши и выберите "выполнить хранимую процедуру". введите значение столбца id в таблице подписки на событие для предупреждения, которое вы хотите удалить.