Я работаю над приложением ASP.NET для веб-форм, которое будет служить простой формой ввода для создания рабочих элементов в TFS 2010.
Приложение работает правильно, когда я запускаю его локально в режиме отладки - отправка завершается и рабочий элемент создается.
Когда я публикую форму на нашем сервере разработки, она высвечивается желтым цветом и выдает следующую ошибку:
[SecurityException: TF50309: The
следующий аккаунт не имеет
достаточные разрешения для завершения
операция: DOMAINNAME \ SERVERNAME $.
следующие разрешения необходимы для
выполнить эту операцию: Просмотр
информация на уровне коллекции.]
В моем коде я пытаюсь получить доступ к TFS с использованием учетной записи службы, и, насколько я могу судить, учетная запись службы используется правильно, когда я работаю в режиме отладки.
Вот как выглядит мой C #:
string tfsServerUrl = "http://servername:8080/tfs";
string tfsProject = "Web Team Projects";
NetworkCredential tfsCredential = new NetworkCredential("ServiceAccountName", "password", "DOMAIN");
TeamFoundationServer tfs = new TeamFoundationServer(tfsServerUrl, tfsCredential);
tfs.Authenticate();
WorkItemStore workItemStore = new WorkItemStore(tfsServerUrl);
Если я установлю точку останова в строке tfs.Authenticate (), объект сервера отобразит имя учетной записи службы в качестве текущего пользователя и IsAuthenticated = true.
Строка в исключении, в которой упоминается имя_сервера $, меня озадачивает. Похоже, что IIS решает попытаться получить доступ к TFS с помощью идентификатора пула приложений вместо учетных данных, которые я предоставляю явно.
Наш сервер разработки представляет собой сервер Server 2008 с IIS 7.
Есть предложения?