我在针对Microsoft Team Foundation Cloud Service运行的Windows Server 2012 R2上运行Git版本2.12.1。无论我运行什么Git命令,我都会遇到同样的错误。我甚至完全打开我的防火墙,看看是不是导致它,但无济于事。我尝试过Clone,Push,&拉,他们都返回此错误。
git clone https://myaccount.visualstudio.com/_git/myProject
Cloning into 'myProject'...
fatal: HttpRequestException encountered.
An error occurred while sending the request.
Unhandled Exception: System.ObjectDisposedException: Cannot access a closed file.
at System.IO.__Error.FileNotOpen()
at System.IO.FileStream.Flush(Boolean flushToDisk)
at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
at Microsoft.Alm.Git.Trace.Microsoft.Alm.Git.ITrace.Flush()
at Microsoft.Alm.Cli.Program.Die(String message)
at Microsoft.Alm.Cli.Program.Die(Exception exception)
at Microsoft.Alm.Cli.Program.Main(String[] args)
答案 0 :(得分:7)
根据Git Credential Manager问题跟踪器上的this issue和我今天早上的经验, HttpRequestException 错误,但 System.ObjectDisposedException除外:无法访问已关闭的文件具有以前工作的存储库可能是由于存储库主机将TLS 1.2作为一项要求推出,并且您在1.14.0之前使用了Git Credential Manager的一个版本(包含在Git for Windows v2.16.2中)。
要解决此问题,请更新到Git for Windows v2.16.2或更高版本。
要直接解决iagowp,如果这是在Github上托管的存储库,则他们开始force TLS 1.2 as of 19:00 UTC on the 22nd of Feb。
答案 1 :(得分:6)
这是来自Git Credential-Manager for Windows的callstack:请参阅issue 481 这是一个凭据帮助程序,它将在Windows Credential Manager存储中缓存与帐户和远程Git Hosting服务器URL关联的密码。
检查git config credential.helper
正常分辨率:升级Git (嵌入GCM)。
在偶然的情况下,与文件相关的错误是GitHub SSL配置更改(made yesterday)的副产品,maintainer for Git for Windows just tweeted:
如果您今天无法从Windows连接到GitHub,请务必更新到最新版本的Git for Windows。
GitHub改变了他们的SSL配置。
作为一种解决方法(至少要确认这是问题),请从任何git配置设置文件中删除credential.helper。请参阅git config -l --show-origin
列出所有这些内容。
删除后,任何克隆(如果需要身份验证)都应提示您输入凭据。但至少,它不会失败。
还检查GCM(Git Credential Manager - for Windows)的版本是否是最后一个版本。
为此,请检查您使用的Git版本。
检查你的Git程序安装在哪里:输入CMD会话。
where git
一旦你知道Git的安装位置,就可以进入Git中嵌入的GCM版本:
C:\path\To\git
"./mingw64/libexec/git-core/git-credential-manager.exe" version
Git Credential Manager for Windows version 1.14.0