ASP.NET-MVC и TFS: получение ошибки TF30076 - PullRequest
1 голос
/ 14 июля 2009

Когда я пытаюсь создать объект Microsoft.TeamFoundation.Client.TeamFoundationServer в HomeController моего приложения MVC, я получаю следующую ошибку:

TF30076: указано имя сервера {TfsServerName} не соответствует URI сервера это можно найти. Подтвердите, что правильное имя сервера.

Я использую аутентификацию Windows для приложения MVC, поэтому свойство Controller.User заполняется как логин моего домена {домен \ имя пользователя}.

Когда я отлаживал с помощью Visual Studio Development Server, код работал нормально. После того, как я начал использовать виртуальный каталог в IIS, выполнение кода начало возвращать вышеупомянутую ошибку.

Я использую Visual Studio / TFS 2008 (v9.0), среду Windows XP и ASP.NET MVC 1.0.

Исключение:

Microsoft.TeamFoundation.TeamFoundationInvalidServerNameException: TF30076: имя сервера {xxxx} при условии, не соответствует URI сервера, который можно найти. подтвердить что имя сервера правильное. в Microsoft.TeamFoundation.Client.TeamFoundationServer.GetUriForName (String имя) в Microsoft.TeamFoundation.Client.TeamFoundationServer.get_Uri () в Microsoft.TeamFoundation.Client.CheckAuthenticationProxy..ctor (TeamFoundationServer сервер) в Microsoft.TeamFoundation.Client.TeamFoundationServer.Authenticate (Boolean useProvider, ICredentialsProvider поставщик) в Microsoft.TeamFoundation.Client.TeamFoundationServer.Authenticate () в Portal.TfsHelper.AuthenticateTfsServer () в D: \ Portal \ Portal \ Models \ TfsHelper.cs: линия 99

Код, выдающий исключение, показан ниже:

try
{
    // authenticate before using tfs server
    //TfsServer is created using the following: TfsServer = new TeamFoundationServer("server-name");
    if (!TfsServer.HasAuthenticated)
    {
        TfsServer.Authenticate();
        _hasAuthenticated = true;
    }
}
catch (Exception ex)
{
#warning: temporary error handling for TFS authentication
    String exString = ex.ToString();
    throw new Exception(ex.Message, ex.InnerException);
}

Есть мысли о том, почему это происходит?

Исключение, возникающее после вызова "RegisteredServers.AddServer (" имя-сервера "," http://server -имя: 8080");":

System.Security.SecurityException: Запрашиваемый доступ к реестру не разрешен. в System.ThrowHelper.ThrowSecurityException (ресурс ExceptionResource) в Microsoft.Win32.RegistryKey.OpenSubKey (имя строки, логическая запись) в Microsoft.TeamFoundation.Client.RegisteredServers.OpenCurrentUser (логическая запись, логическая установка) в Microsoft.TeamFoundation.Client.RegisteredServers.AddServer (String serverFriendlyName, String serverUrl) в Portal.Controllers.HomeController..ctor () в D: \ Portal \ Portal \ Controllers \ HomeController.cs: строка 42 Зона сборки, которая провалилась, была: MyComputer

Ответы [ 3 ]

2 голосов
/ 15 июля 2009

Некоторые попытки психической отладки:

  • Вы передаете дружественное имя или реальный, действительный URI? Если это понятное имя, использовали ли вы Visual Studio или regedit или подобное для инициализации сопоставления URI? (HKLM \ Software \ Microsoft \ VisualStudio \ ххх \ TeamFoundation \ Servers)
  • Работает ли ASP в сетевом контексте, который требует другого URI для доступа к TFS (например, имя netbios против полного имени домена, другой порт ...)
  • Настройки прокси одинаковы на двух машинах? Брандмауэр
  • Какие учетные данные вы передаете в конструктор TeamFoundationServer?
    • Если нет (как показывает пример кода), с какой учетной записью домена работает ваш пул приложений?
    • Является ли поток, в котором вы создаете TeamFoundationServer, запущенным в олицетворенном контексте? Вы убедились, что олицетворение работает так, как вы ожидаете?
0 голосов
/ 26 ноября 2013

Ошибка, которую я получаю: «Доступ к разделу реестра« HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 8.0 \ TeamFoundation \ Servers »запрещен. System.UnauthorizedAccessException: доступ к разделу реестра "

Это сработало, когда я добавил TFS-сервер в Visual Studio. Не знаю почему ... но просто добавляю мой ответ сюда, чтобы потом он мог кому-нибудь помочь.

0 голосов
/ 14 июля 2009

Скорее всего, указанное имя сервера {TfsServerName} не соответствует URI сервера, который можно найти. Вы должны подтвердить правильность имени сервера.

Да ладно, ты думаешь, это тебе врёт? Что он нашел сервер, но решил, что вы не заслуживаете его использования? Скорее всего, вы не передаете ему имя сервера, которым вы себя считаете. Остановитесь в отладчике и убедитесь, что это та же строка, которую вы получаете при тестировании на сервере разработки.

Кроме того, вы получили сообщение об ошибке или это исключение? Если это было исключение, то, пожалуйста, перехватите исключение, затем опубликуйте все исключение, опубликовав результат ex.ToString ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...