Я пытаюсь получить доступ к серверу TFS с помощью кода C#, и я продолжаю работать в этой проблеме. Проблема возникает только тогда, когда я пытаюсь отлаживать код, но если я просто попытаюсь создать и запустить его успешно.Доступ к tfs из исключения проверки подлинности C#
var credentials = new NetworkCredential("username","password");
var projects = new TfsTeamProjectCollection(new Uri("http://xxx-xxxx.com:8080/tfs/xxxxx"), credentials);
projects.EnsureAuthenticated();
if (Directory.Exists(localPath))
{
foreach (var item in Directory.GetFiles(localPath, "*.*", SearchOption.AllDirectories))
{
File.SetAttributes(item, FileAttributes.Normal);
}
Directory.Delete(localPath, true);
}
WorkingFolder[] mapping = serverItem.Select(x => new WorkingFolder(x, Path.Combine(localPath, GetDummyString(x)))).ToArray();
var workspace = versionControl.CreateWorkspace(workspaceName, Environment.UserName, Environment.UserName + " Checkout", mapping);
workspace.Get();
Это происходит на projects.EnsureAuthenticated();
. Я получаю:
System.Net.WebException occurred:
HResult=-2146233079
Message=The remote server returned an error: (401) Unauthorized.
Source=System
StackTrace: at System.Net.HttpWebRequest.GetResponse()
InnerException: null
Это происходит только тогда, когда я пытаюсь отлаживать, если я комментировать эту линию, что я получаю новый WebException говоря: Additional information: The remote server returned an error: (401) Unauthorized.
от вызова к versionControl.CreateWorkspace()
UPDATE: Я заметил, когда он выдает исключение во время отладки, если я пытаюсь продолжить (щелкнув F10 несколько раз), исключение исчезает, и код преуспевает.
UPDATE 2: После борьбы с этой проблемой на некоторое время, кажется, вопрос, почему я получаю эту ошибку, потому что некоторые из свойств не инициализируются при создании объекта. Как вы можете видеть на картинке: Link here
Как вы можете видеть на картинке, что не удается инициализировать, являются AuthorizedIdentity и CatalogNode. Любая идея, как я могу ее решить?
Является ли это в контексте веб-приложения ASP.NET, случайно? –
Нет, я использую приложение для настольных компьютеров. Я пытаюсь подключиться к tfs через консольное приложение, которое позже будет сделано как библиотека классов. – Min0
Вы получаете ответ «HTTP 401», что означает, что запрос не был применен, поскольку ему не хватает действительных учетных данных для целевого ресурса. Я вижу, что вы не добавляете NetworkCredential в любом месте, поэтому я бы предложил добавить к «проектам», если сможете. В противном случае я не совсем уверен, где вы должны добавить его, но это будет способ пойти в любом случае – Ortund