如何通过编程方式通过代理连接到TFS?

Hat*_*tch 2 c# tfs

在我的公司,我们最近成立了一个TeamFoundation代理我们的TeamFoundationServer.我编写了一个C#应用程序,它连接到TFS以查询各种内容.现在,我希望该应用程序也支持通过TFS代理连接.由于我对TFS并不熟悉,我遇到了一些困难.理想情况下,我希望应用程序只是"知道" TFS代理,并把它行为就像正常的TFS.这甚至可能吗?

我在做什么是这样的:

TfsTeamProjectCollection projects = 
    new TfsTeamProjectCollection(new Uri(serverUriString, 
                                 new NetworkCredential(username, password, domain));
Run Code Online (Sandbox Code Playgroud)

如果serverUriString是TFS(例如" http:// MyTfs:8080 "),这可以正常工作.当我用TFS代理替换它(例如" http:// MyTfsProxy:8081 ")时,我得到一些非特定的TeamFoundationServiceUnavailableException,最后它表明发生了一个http 404错误.404对我来说没有多大意义,我能够ping服务器,我可以从浏览器连接到它,Visual Studio也可以加入它.我是否需要设置与TFS和代理的连接?如果是的话,我该怎么做?

Gra*_*day 6

AddProxy()方法用于向TFS服务器注册代理服务器列表,以便客户端可以自动检测和使用代理服务器.

如果您只想将客户端配置为使用代理服务器,则没有属性可执行此操作.您必须设置注册表项或未记录的环境变量.

对于TFS2008客户端,注册表项是:

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\TeamFoundation\SourceControl\Proxy]
"Enabled"="True"
"Url"="http://someproxy:8081"
Run Code Online (Sandbox Code Playgroud)

对于TFS2010客户端,注册表项是:

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\TeamFoundation\SourceControl\Proxy]
"Enabled"="True"
"Url"="http://someproxy:8081"
Run Code Online (Sandbox Code Playgroud)

在任一TFS版本中,您都可以设置未记录的环境变量:

System.Environment.SetEnvironmentVariable("TFSPROXY",http://someproxy:8081);
Run Code Online (Sandbox Code Playgroud)