Проблема с учетной записью пользователя службы Windows для TFSBuildServiceHost.exe - PullRequest
9 голосов
/ 21 октября 2011

Сегодня на нашем сервере сборки TFS2010 возникла очень странная проблема. Неожиданно произошел сбой службы сборки без видимой причины. У нас были проблемы со стрельбой весь день, но мы до сих пор не нашли причину.

Одна из проблем заключается в том, что служба сборки (или должна!) Работает под пользователем AD с именем tfs2010build. Однако, когда я пытаюсь запустить службу, я получаю следующую ошибку

Service cannot be started. Microsoft.TeamFoundation.TeamFoundationServerUnauthorizedException: TF30063: You are not authorized to access http://tfs2010:8080/tfs/default. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized.

Когда я просматриваю журнал событий на сервере TFS2010, я вижу, что неудачная аутентификация зарегистрирована для пользователя с именем TFS2010Install, который использовался для установки всего. Я трижды проверил, и служба указана как работающая под TFS2010Build.

Журнал с сервера TFS2010:

Account For Which Logon Failed:
Security ID:        NULL SID
Account Name:       TFS2010INSTALL
Account Domain:     LC

Итак, мой вопрос: как это возможно? Может ли пользователь TFS2010 создать что-то, как выдать себя за TFS2010Install? я мы попытались установить дополнительный сервер сборки, и здесь нет проблем с запуском службы под пользователем TFS2010Build - следовательно, это не проблема с правами пользователей AD или TFS.

Надеюсь, вы, ребята, можете помочь!

/ Jasper

!! Обновлено с некоторыми снимками экрана. Сервер сборки - TFS2010BIULD, а сервер TFS - TFS2010 enter image description here

Ссылка на полный размер

Снимок экрана неработающего сервера сборки TFS2010Build enter image description here

Снимок экрана рабочего сервера сборки TFS2010Build1 enter image description here

!! Новое обновление

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

TF215097: при инициализации сборки для определения сборки произошла ошибка \ PlanteIT_MarkOnline_Scrum \ CI_Main_FieldOnlineClient: TF215106: доступ запрещен. LC \ TFS2010INSTALL необходимо обновить разрешения на информацию о сборке для определения сборки CI_Main_FieldOnlineClient в командном проекте PlanteIT_MarkOnline_Scrum для выполнения действия. За дополнительной информацией обращайтесь к администратору Team Foundation Server.

Он по-прежнему настаивает на том, что учетная запись пользователя TFS2010Install запускает службу, несмотря на то, что TFS2010Build используется для службы сборки. Есть идеи?

Ответы [ 3 ]

5 голосов
/ 25 октября 2011

Это удар в темноте. Можете ли вы попытаться очистить кэш клиента TFS и ваш интернет-кеш на компьютере с проблемной сборкой под учетной записью Tfs2010Build? Я никогда раньше не сталкивался с этой проблемой, но, возможно, некоторые устаревшие кэшированные объекты TfsProjectCollection с аутентификацией TFS2010Install остались и вызвали проблемы.

Вы также пытались перенастроить свой сборочный компьютер?

Для отмены настройки: Установка / удаление tfsconfig.exe: TeamBuild

и перенастроить через мастера.

1 голос
/ 25 октября 2011

попробую еще раз ..., шаг за шагом: -)

  1. FACT : при регистрации контроллера сборки в коллекции проектов TFS, вошедшей в систему как TFS2010Build, появляется диалоговое окно аутентификации. Это означает, что сервер TFS не принимает TFS2010Build в качестве учетной записи, которую можно использовать для подключения к коллекции по умолчанию на сервере TFS.

  2. FACT : Когда вы регистрируете свой контроллер сборки в коллекции проектов TFS, входя в систему как TFS2010Install, всплывает диалоговое окно аутентификации no . Это означает, что сервер TFS принимает TFS2010Install в качестве учетной записи, которую можно использовать для подключения к коллекции по умолчанию на сервере TFS.

  3. Очевидно, что как в 1, так и в 2 ваш контроллер сборки зарегистрирован с использованием учетной записи TFS2010Install на сервере TFS, либо контроллер, либо сервер запоминает эти учетные данные и использует их для подключения к коллекции серверов TFS при сборке. контроллер запущен, несмотря на то, что сама служба работает под учетной записью TFS2010Build. Это правдоподобная ситуация, и для служб часто происходит олицетворение. Может быть, какой-то техник TFS может подтвердить или опровергнуть это поведение.

Вопрос, который остается для меня: Почему коллекция по умолчанию на сервере TFS не принимает учетную запись TFS2010Build в качестве действительного администратора?

Потенциальные причины:

  1. Прочитайте ответ Джима Лэмба.

  2. Что-то не так с регистрацией домена системы или пользователя, используемого для подключения контроллера к коллекции на сервере TFS.

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

Длинный ответ, но, надеюсь, это даст вам большой толчок в правильном направлении.

0 голосов
/ 24 октября 2011

Жаль слышать, что у вас проблемы с этим. Вот несколько вещей, которые вы можете проверить / попробовать:

  • Убедитесь, что учетная запись пользователя TFS2010Build является членом группы «Build Services» в коллекции проектов TFS, с которой вы ее связали.

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

Таким образом, чтобы подвести итог, пользователь, настраивающий машину сборки, должен быть членом группы администраторов коллекции проектов и членом группы локальных администраторов. Кроме того, учетная запись пользователя, на которой работает машина сборки, должна входить в группу «Службы сборки» коллекции проекта.

...