TF400324错误,但仅在使用TFS API时
本文关键字:TFS API 错误 TF400324 | 更新日期: 2023-09-27 18:15:34
我看到了很多关于"TF400324: Team Foundation服务无法从服务器获得"的讨论,但我读到的所有内容都与DNS或代理有关,并且反映了无法通过任何通道连接到TFS。我的情况是不同的:当使用。net库时,我无法访问我的TFS服务器,但使用Visual Studio的工作流工具可以很好地工作,并且我可以在浏览器中访问相同的URL。
Zee代码,在这里:
private TfsConfigurationServer _server;
...
Uri url = new Uri(serverName + rootFolder);
var creds1 = new NetworkCredential(username, password, Environment.UserDomainName);
var creds2 = new BasicAuthCredential(creds1);
var creds3 = new TfsClientCredentials(creds2) { AllowInteractive = false };
_server = new TfsConfigurationServer(url, creds3);
// Throws Microsoft.TeamFoundation.TeamFoundationServiceUnavailableException
_server.Authenticate();
我已经尝试了各种建议的解决方案,但我不认为这是相关的。对于我尝试过的任何其他信用,我都会得到相同的行为,或者根本没有信用。
如果我将确切的URL复制到浏览器中,我就可以进行身份验证并继续。在Visual Studio中,我可以使用源代码管理资源管理器和其他工具连接到TFS,而无需显式验证。库可能希望以不同的方式处理哪些问题?
错误的附加细节:
Team Foundation services are not available from server https://tfs.imahufflepuff.com:8080/tfs/Root/Project.
Technical information (for administrator):
The underlying connection was closed: An unexpected error occurred on a send.
---> System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send.
---> System.IO.IOException: The handshake failed due to an unexpected packet format.
我们没有内部的TFS管理员,否则我会把这个问题踢给他。我曾尝试使用提琴手获得额外的细节,但VS始终拒绝出现在那里。我可以到达一个外部托管的API,而调试,所以我不认为有一个网络或代理问题锁定VS.
您是否尝试过使用TfsTeamProjectCollection
类而不是TfsConfigurationServer
?例如
Uri url = new Uri(serverName + rootFolder);
var creds = new NetworkCredential(username, password, Environment.UserDomainName);
var server = new TfsTeamProjectCollection(url, creds);
server.Authenticate();
您也可以尝试使用Fiddler调试此问题。在启动Fiddler之前,您必须更改VS代理设置:
- 设置注册表项
reg add hkcu'SOFTWARE'Microsoft'VisualStudio'12.0'TeamFoundation'RequestSettings /v BypassProxyOnLocal /t REG_SZ /d False
或
- 设置环境变量TFS_BYPASS_PROXY_ON_LOCAL=0
似乎是一个SSL握手问题,它与TFS和HTTP协议和身份验证无关,它们位于SSL之上。因此,请确保您拥有一个有效的证书、匹配的主机名、良好的有效性、可访问的CRL(证书未被吊销)等。也检查其他浏览器或openssl.exe ("openssl.exe s_client -connect servername:8080")以获得更多诊断信息。您没有提到代理或ssl级别的证书身份验证也可能导致问题,应该可以通过我上面提到的方法轻松调试。