我面临一个奇怪的问题。我想使用tfs api programmitcally连接tfs服务器。 即使在提供了正确的认证信用之后,它也是失败的。但是如果我通过在浏览器中输入tfs服务器名称手动完成它就已经连接了。
代码:
TeamFoundationServer tfs = new TeamFoundationServer(new Uri("http://10.112.205.145:8080/tfs"), new NetworkCredential(@"usrname", "pwd", "domain"));
tfs.EnsureAuthenticated()
请建议。
答案 0 :(得分:4)
一种简单的方法是在代码中添加“Syetem.Net”命名空间,然后使用“CredentialCache”对象。使用“DefaultCredentials”将使用活动用户的凭据进行身份验证。
// connect to the collection
using (TfsTeamProjectCollection teamProjectCollection = new TfsTeamProjectCollection("http://server:8080/tfs/DefaultCollection", CredentialCache.DefaultCredentials))
{
//Do Stuff here
}
答案 1 :(得分:1)
你有没有试过这样做..
TfsTeamProjectCollection collection = new TfsTeamProjectCollection(
new Uri(http://server:8080/tfs/DefaultCollection,
new System.Net.NetworkCredential("domain_name\\user_name", "pwd"));
collection.EnsureAuthenticated();
答案 2 :(得分:0)
对于您的问题,通常会出现如下错误:
失败的可能原因包括: - Team Foundation Server的名称,端口号或协议不正确。 - Team Foundation Server处于脱机状态。 - 密码已过期或不正确。
问题的根本原因是 URI应该以集合名称结束。所以解决方法是改变" http://10.112.205.145:8080/tfs"到" http://10.112.205.145:8080/tfs/ %YourCollectionName%",然后就可以了! : - )