1

我面临一个奇怪的问题。我想以编程方式使用 tfs api 连接 tfs 服务器。即使在提供了正确的 authentcaion crdiatials 之后,它也会失败。但是如果我通过在浏览器中键入 tfs 服务器名称来手动完成它,它就会连接起来。

代码:

TeamFoundationServer tfs = new TeamFoundationServer(new Uri("http://10.112.205.145:8080/tfs"),  new NetworkCredential(@"usrname", "pwd", "domain"));
tfs.EnsureAuthenticated()

请建议。

4

3 回答 3

4

一种简单的方法是将“Syetem.Net”命名空间添加到您的代码中,然后使用“CredentialCache”对象。使用“DefaultCredentials”将使用活动用户的凭据进行身份验证。

// connect to the collection
using (TfsTeamProjectCollection teamProjectCollection = new TfsTeamProjectCollection("http://server:8080/tfs/DefaultCollection", CredentialCache.DefaultCredentials))
            { 
                //Do Stuff here 
            }
于 2012-12-13T14:06:08.937 回答
1

你有没有试过这样做。。

TfsTeamProjectCollection collection = new TfsTeamProjectCollection(
    new Uri(http://server:8080/tfs/DefaultCollection,
    new System.Net.NetworkCredential("domain_name\\user_name", "pwd"));
collection.EnsureAuthenticated();
于 2012-12-13T07:06:55.667 回答
0

对于您的问题,通常您会收到如下错误:

失败的可能原因包括: - Team Foundation Server 的名称、端口号或协议不正确。- Team Foundation Server 处于脱机状态。- 密码已过期或不正确。

您的问题的根本原因是URI 应该以集合名称结尾。所以解决方法是将“ http://10.112.205.145:8080/tfs ”更改为“ http://10.112.205.145:8080/tfs/ %YourCollectionName% ”,然后它会起作用!:-)

于 2017-08-04T09:01:04.677 回答