Проблема закрытой регистрации TFS

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

Я пытаюсь исправить коробку TFS, настроенную бывшим коллегой. Я не использовал TFS ни в каком другом качестве, кроме проверки файлов в/из него до настоящего времени. Для целей этого упражнения я создал простой проект winforms только с одной формой и предупреждением hello world при загрузке формы, которое я попытка регистрации в TFS. У нас включена закрытая регистрация, и мы также запрещаем пользователям обходить проверки сборки, как это можно увидеть в красном поле ниже.

Диалог закрытой регистрации

Теперь проблема в том, что все попытки закрытой регистрации завершаются с ошибкой:

Access Denied: User 'myOrgDomain\user.name' needs Override check-in 
validation by build permission for the following build definition(s). DefnName

Сообщение, которое я получаю, говорящее, что это частичный успех

Когда я открываю сборку, я вижу это Вывод сборки TFS

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

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


person user20358    schedule 07.06.2012    source источник
comment
Похоже, у вас есть настроенный шаблон сборки (я вижу генерацию метрик). Возможно, определение сборки было изменено, чтобы не включать комментарий ***NO_CI*** при регистрации? Имеет ли учетная запись службы, под которой выполняется сборка, разрешение на обход проверки возврата?   -  person jessehouwing    schedule 07.06.2012
comment
Да, у меня есть индивидуальный шаблон сборки. Чтобы не включать комментарий NO_CI?.. Этот комментарий был там, когда сборка раньше работала с закрытыми проверками. После ухода этого коллеги и отключения его учетной записи мне пришлось запускать TFS под своим логином. Вот тогда и началась вся проблема. Я дал себе все привилегии, которые он дал себе; насколько я знаю.   -  person user20358    schedule 07.06.2012
comment
Я думаю, что это проблема либо с настроенным шаблоном, либо с вашей учетной записью. Можете ли вы попробовать выполнить закрытую регистрацию, используя шаблон по умолчанию, чтобы проверить, работает ли это? Если это так, вы практически исключили проблему с разрешениями. Если нет, является ли ваша учетная запись членом группы «Строители» для вашего проекта?   -  person jessehouwing    schedule 07.06.2012
comment
Шаблон по умолчанию дал ту же проблему. Моя учетная запись является членом группы строителей. Я проверил это, зайдя в консоль администратора TFS > Коллекции командных проектов > Членство в группах > Действительные пользователи > [TestProject]Builders, а также в разделе [TestProject]Администраторы. На самом деле я также добавил свою учетную запись в администраторы коллекции проектов ... Все та же проблема.   -  person user20358    schedule 07.06.2012
comment
В разрешениях определения сборки у вас есть указанная проверка отказа от переопределения проверки для сборки? Или просто пусто?   -  person jessehouwing    schedule 07.06.2012
comment
для [TestProject]Builders, [TestProject]Administrators и [TestProject]Contributors я поставил флажок Deny, для [TestProject]Readers у меня он пуст.   -  person user20358    schedule 07.06.2012


Ответы (3)


[TestProject]Builders, [TestProject]Administrators & [TestProject]Contributors, у меня установлен флажок Deny, для [TestProject]Readers у меня пусто..

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

Итак, чтобы решить вашу проблему:

  • Удалите проверки отказа от этих групп.
  • Установите параметр «Переопределить проверку регистрации», чтобы разрешить учетным записям обходить сборку закрытой регистрации.

Из документации:

Вы можете указать два явных параметра авторизации для разрешений в Team Foundation Server: Запретить и Разрешить. Существует также неявная авторизация, которая не устанавливает разрешение «Разрешить» и не устанавливает разрешение «Запретить». Эта авторизация является неявной настройкой Deny, которая называется Unset.

person jessehouwing    schedule 07.06.2012
comment
[TestProject]У читателей нет пользователей. В разделе [TestProject]Администраторы и [TestProject]Builders я помещаю свою учетную запись. В разделе [TestProject] Contributors я помещаю учетную запись, которую я буду считать разработчиком, который проверяет код. - person user20358; 07.06.2012
comment
Я снял флажок «запретить» и «разрешить» для всех ролей, кроме [DefaultCollection] \ Администраторы коллекции проектов, и, похоже, это сработало для меня ... на данный момент. Как вы думаете, это должно быть нормально, или я делаю что-то недальновидное, и мне действительно нужно установить флажок «Отменить проверку проверки на входе»? Это позволит пользователям полностью обойти функцию закрытой регистрации, и я не хочу, чтобы они это делали. - person user20358; 07.06.2012
comment
Вы можете всегда включать переопределение на короткий период, например, когда вы отлаживаете проблемы со сборкой. Или вы можете включить его для администраторов проекта или ключевых членов команды, которые могут взять на себя ответственность. Обычно мы включаем его для большинства членов команды, чтобы, когда они проверяют документацию или файлы конфигурации, не включенные в фактическую сборку, сборка не ставилась в очередь. - person jessehouwing; 07.06.2012

Что-то подозрительное происходит в вашей установке. Доступ к флагу, представленному на вашем снимке экрана, контролируется разрешением на сборку «Переопределить проверку регистрации при сборке». Поскольку это не задано как разрешение, а, по-видимому, задано как опция, вы находитесь в тупиковой ситуации.

Я бы попытался временно включить этот флаг (щелкните правой кнопкой мыши Team Explorer на «Сборках», выберите «Безопасность» и установите разрешение для вашего пользователя), затем флажок должен быть включен, и я ожидаю, что он будет проверен. Я бы снял флажок вручную и запустил сборку. Затем я бы отключил разрешение.
Надеюсь, теперь VS сохранит эту опцию.

Если бы это не удалось, я бы зарегистрировал ошибку в MS.

person pantelif    schedule 07.06.2012
comment
Спасибо. Я пробовал это, но это не сработало. Я включил этот флажок, который неактивен, но не выбрал его, и он был успешно построен. как только я снова отключил опцию обхода, он снова вернулся к частичному успеху. - person user20358; 07.06.2012
comment
Пожалуйста, уточните возврат к частичным успехам: теперь ваши сборки начинаются? Что сообщает журнал сборки в качестве причины понижения сборки до частичного успеха? - person pantelif; 07.06.2012
comment
Что ж, у меня включена закрытая регистрация, поэтому для этого нового тестового проекта, который я сделал, для которого я создал новую сборку, насколько мне известно, при попытке регистрации я получил бы 0 ошибок, 0 предупреждений для кода . Но тогда мне будет отказано в регистрации, потому что сборка была частично успешной. Сборка запущена, и я вижу код, сгенерированный в папке перетаскивания с моими изменениями, но файл не регистрируется. когда я просматриваю историю, последние внесенные мной изменения отсутствуют в истории проверок. - person user20358; 07.06.2012
comment
Закрытая регистрация должна завершиться ошибкой только в том случае, если мой код не компилируется, верно? В противном случае по какой причине регистрация не удалась?..? - person user20358; 07.06.2012
comment
Gated check терпит неудачу, если сборка завершается неудачно, и это может произойти по ряду причин, одной из которых является сбой компиляции. Вы можете проверить журнал сборки, чтобы отследить сбой. - person pantelif; 07.06.2012
comment
поскольку это тестовое приложение, которое я создал только для того, чтобы отработать эту вещь TFS с одной строкой кода, чтобы показать сообщение с надписью Hello World, я абсолютно уверен, что это не код, который потерпел неудачу. - person user20358; 07.06.2012
comment
Я тоже проверил журналы.. и это было в основном то же, что и раздел сводки на третьем изображении в вопросе выше.. Кажется, это проблема с разрешениями. Поскольку моя учетная запись является администратором, мне нужно явно указать для нее возможность обхода. Остальные учетные записи могут быть отключены ... это только мое предположение. Я не могу найти документацию по этому поводу... что вы думаете? - person user20358; 07.06.2012

Диалоговое окно безопасности сборки TFS

Я столкнулся с той же проблемой, о которой вы говорите. Параметр безопасности, который вы хотите установить, предназначен для самой сборки, а не для чего-либо в поле TFS. Что сработало для меня, так это щелкнуть правой кнопкой мыши сборку в Visual Studio и выбрать параметр «Безопасность...». Затем я удостоверился, что мои учетные записи службы сборки имеют доступ к разрешению «Переопределить проверку регистрации при сборке». Дело не в том, что пользователям TFS разрешено отменять регистрацию. Сообщение действительно о том, имеет ли пользователь службы сборки возможность переопределить регистрацию. Чтобы это работало, вы должны быть членом группы Учетные записи службы сборки коллекции проектов.

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

В моем случае у меня есть несколько сборок. Было недостаточно просто разрешить «Переопределить проверку регистрации при сборке» только для решения, с которым я работал. По какой-то причине мне пришлось сделать то же самое для всех моих других сборок. Я не смог найти документацию о том, почему это так.

person Chuck Sweet    schedule 11.06.2012