Команды Git сбой HttpRequestException
Я запускаю Git версии 2.12.1 на Windows Server 2012 R2, работающий с облачным сервисом Team Team Foundation. Независимо от того, какую команду Git я запускаю, я продолжаю получать ту же ошибку. Я даже полностью открыл свой брандмауэр, чтобы убедиться, что это вызвало его, но безрезультатно. Я пробовал Clone, Push и Pull, и все они возвращают эту ошибку.
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)
Ответы
Ответ 1
Это столбец из Git Credential-Manager для Windows: см. Его вопрос 481.
Это помощник учетных данных, который будет кэшировать в диспетчере учетных данных Windows хранит пароль, связанный с учетной записью и удаленным URL-адресом сервера Git Hosting.
Проверьте значение git config credential.helper
Нормальное разрешение: обновление Git (который включает GCM).
В случайном случае годовая ошибка, связанная с файлом, является побочным продуктом изменения конфигурации GitHub SSL (сделано вчера), сопровождающий Git для Windows просто в твиттере:
Если у вас возникли проблемы с подключением к GitHub из Windows сегодня, обязательно обновите последнюю версию Git для Windows.
GitHub изменил свою конфигурацию SSL.
В качестве обходного пути (по крайней мере, чтобы подтвердить, что это проблема), удалите credential.helper из любого файла настроек git config. См. git config -l --show-origin
чтобы перечислить все из них.
После удаления любой клон, если он нуждается в аутентификации, должен запросить учетные данные. Но, по крайней мере, это не подведет.
Проверьте также, является ли последняя версия GCM (Git Credential Manager - для Windows) последней.
Для этого проверьте, какую версию Git вы используете.
Проверьте, где установлена ваша программа Git: введите сеанс CMD.
where git
Как только вы узнаете, где установлен Git, вы можете перейти к версии GCM, встроенной в Git:
C:\path\To\git
"./mingw64/libexec/git-core/git-credential-manager.exe" version
Git Credential Manager for Windows version 1.14.0
Ответ 2
В соответствии с этой проблемой, связанной с отслеживателем проблем Git Credential Manager и моим собственным опытом сегодня, ошибка HttpRequestException, за исключением System.ObjectDisposedException: не удается получить доступ к закрытому файлу с ранее работающим репозиторием, вероятно, из-за развертывания узла хранилища TLS 1.2, и вы используете версию Git Credential Manager до версии 1.14.0 (входит в Git для Windows v2.16.2).
Чтобы решить, обновите Git для Windows v2.16.2 или новее.
Чтобы напрямую обращаться к iagowp, если это репозиторий, размещенный в Github, они начали принудительно устанавливать TLS 1.2 с 19:00 по UTC 22 февраля.