我正在为TFS 2012编写一个小型C#报告应用程序。
TFS 服务器是远程的,只能通过网络中的 HTTP 代理服务器访问,因为防火墙会阻止直接访问。
代理是在 Internet Explorer 中配置的,所以我可以在 IE 中打开 TFS URL,并且在使用 TFS 时 Visual Studio 会自动使用它。
问题是我的应用程序忽略了 IE 代理设置并尝试直接连接到 TFS 服务器(我在 Wireshark 中看到了这一点),因此在超时后由于防火墙而失败。
这是我使用的代码:
Uri TfsCollectionURL = new Uri("...");
NetworkCredential credential = new System.Net.NetworkCredential(Username, Password, Domain);
TfsTeamProjectCollection collection = new TfsTeamProjectCollection(TfsCollectionURL, credential);
collection.EnsureAuthenticated();
ICommonStructureService projectService = collection.GetService<ICommonStructureService>();
foreach (ProjectInfo project in projectService.ListProjects())
{
...
}
申请失败于 。EnsureAuthenticated () 异常:
TF400324:Team Foundation 服务无法从服务器获得...
连接尝试失败,因为连接的一方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应......
它确实可以在允许直接访问 TFS 服务器的另一个子网中工作。
问题:
如何在我的 C# 应用程序中使用HTTP 代理连接到 TFS?