使用 VS 2015 Update 3 (TFS 2015 Update 3) 克隆远程存储库时遇到错误

Error encountered while cloning the remote repository with VS 2015 Update 3 (TFS 2015 Update 3)

我最近升级到客户端的 VS 2015(更新 3)和服务器端的 TFS 2015(更新 3)。 Git 操作工作了一段时间,然后我在尝试克隆 git 存储库时开始出现以下错误:

Error encountered while cloning the remote repository: An error occurred while sending the request.

Inner Exception:
    The remote server returned an error: (401) Unauthorized.

    Inner Exception:
        No credentials are available in the security package

但我可以毫无问题地在浏览器中导航到存储库。然后,我认为这可能是由于我的客户端设置所致。我尝试删除 VS 缓存以及 TFS 缓存。没有任何效果。当我使用 Fiddler 时,它应该如下信息:

它揭示了以下信息:

Request 1:
GET https://myhost/tfs/transact/Transact/_git/MY-REPO/info/refs?service=git-upload-pack HTTP/1.1
User-Agent: git/1.0 (libgit2) Team Foundation (devenv.exe, 14.102.25521.0, Enterprise, SKU:37)
Host: myhost
Accept-Encoding: gzip
Connection: Keep-Alive

Response 1:
HTTP/1.1 401 Unauthorized
...
Request 2:
GET https://myhost/tfs/transact/Transact/_git/MY-REPO/info/refs?service=git-upload-pack HTTP/1.1
User-Agent: git/1.0 (libgit2) Team Foundation (devenv.exe, 14.102.25521.0, Enterprise, SKU:37)
Accept-Encoding: gzip
Authorization: NTLM TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAKAEM6AAAADw==
Host: myhost

Response 2:
HTTP/1.1 401 Unauthorized

根据这些信息,我在 visual studio 文件夹中搜索了 libgit2*.* 文件。我发现了几个 LibGit2Sharp.dll 的实例。它们都有相同的版本 (0.22.0.0),但一个实例的版本为 14.0.25029.0。我尝试在 14.0.25029.0 之上复制版本 0.22.0.0。但是 visual studio 在发布期间抱怨它。 14.* 版本的文件夹位于 "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions" 文件夹中,其中包含多个以 "Microsoft.TeamFoundation." 开头的 dll。所有这些 dll 的版本都是:14.102.25521.0(这是我在 fiddler trace 中找到的)。

看来我在正确的问题区域,但不确定如何修复错误。

有什么想法吗?

在为上述问题苦苦挣扎了一个星期之后,我今天post解决了这个问题。但就在 posting 之后,我找到了解决方案。

与视觉studio/tfs升级无关。我一定是输入了错误的 tfs 凭据信息(同时选中了记住我框)。使用记住我的功能,团队资源管理器从未给我更正凭据信息的机会,并且可能继续使用存储的错误凭据。这是我必须做的来纠正这个问题:

  1. 控制 Panel\User Accounts\Credential 经理
  2. 删除所有与 tfs 相关的凭据。
  3. 启动visual studio
  4. 它现在会提示您输入 tfs 凭据信息。

问题已解决。

以下 post(虽然已过时)帮助我解决了问题: https://blogs.msdn.microsoft.com/visualstudioalm/2012/08/29/clearing-the-credentials-for-connecting-to-a-team-foundation-server/