首页 > 解决方案 > 无法连接到 TFS 并从 C# 获取文件

问题描述

这是我使用的代码。有些日子它工作正常,但突然停止工作。

        var TFS_UserName = "UserName";
        var TFS_Pass = "Password";
        var domain = "domain";
        var tfsUri = System.Configuration.ConfigurationManager.AppSettings["TFSUri"];
        Uri uri = new Uri(tfsUri);

        NetworkCredential cred = new NetworkCredential(TFS_UserName, TFS_Pass, domain);
        BasicAuthCredential basicCred = new BasicAuthCredential(cred);
        TfsClientCredentials tfsCred = new TfsClientCredentials(basicCred);
        tfsCred.AllowInteractive = false;
        TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(uri, tfsCred);
        try
        {
            tpc.Authenticate();
        }
        catch (Exception ex)
        {
            return "User not Authorized" + ex.Message;
        }
        var vcServer = (VersionControlServer)tpc.GetService(typeof(VersionControlServer));
        var LocalPath = Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["FileSave"]);
        var tempAddress = "File Path";
        var i = vcServer.GetItem(@"$/Folder/Path/" + tempAddress + "/" + "FileName");
        i.DownloadFile(LocalPath + "FileName");

这段代码突然开始在tpc.Authenticate(); 抛出异常;

例外情况是:TF400324:服务器https://tfs/Address不提供 Team Foundation 服务。技术信息(针对管理员):底层连接已关闭:发送时发生意外错误。

前来源:Microsoft.TeamFoundation.Client

内部示例:底层连接已关闭:发送时发生意外错误。
{Inner Ex:无法从传输连接读取数据:现有连接被远程主机强行关闭。}

标签: c#.nettfs

解决方案


首先,您必须确保您可以在运行代码的机器上的 Web 门户中访问 TFS。

然后,尝试清理运行代码的计算机上的缓存文件夹。文件夹路径为:C:\Users\username\AppData\Local\Microsoft\Team Foundation\x.0\Cache.

另外,请尝试删除与Control Panel\All Control Panel Items\Credential Manager.


推荐阅读