這裏是我使用來獲取代碼:LibGit2Sharp集:獲取失敗「重定向過多或驗證回放」
public static void GitFetch()
{
var creds = new UsernamePasswordCredentials()
{Username = "user",
Password = "pass"};
var fetchOpts = new FetchOptions {Credentials = creds};
using (repo = new Repository(@"C:\project");)
{
repo.Network.Fetch(repo.Network.Remotes["origin"], fetchOpts);
}
}
但以下情況除外取過程中失敗:
LibGit2Sharp.LibGit2SharpException: Too many redirects or authentication replays
Result StackTrace:
at LibGit2Sharp.Core.Ensure.HandleError(Int32 result)
at LibGit2Sharp.Core.Proxy.git_remote_fetch(RemoteSafeHandle remote, Signature signature, String logMessage)
at LibGit2Sharp.Network.DoFetch(RemoteSafeHandle remoteHandle, FetchOptions options, Signature signature, String logMessage)
at LibGit2Sharp.Network.Fetch(Remote remote, FetchOptions options, Signature signature, String logMessage)
我已驗證配置文件具有所需的遠程名稱,並且該命令行可以執行git fetch。我發現異常來自libgit2\src\transport\winhttp.c
,但我無法想出解決方法。
區別在於使用給定的用戶名和密碼進行身份驗證,'DefaultCredentials'使用您登錄的憑證進行身份驗證。 'UsernamePasswordCredentials'應該適用於Basic和NTLM。 DefaultCredentials應與NTLM和Kerberos一起使用。 – 2014-10-03 12:55:33
'CredentialsHandler credHandler =(_url,_user,_cred)=> creds;'credHandler變量應該命名爲'ch'以使代碼正常工作,但是謝謝您的回答! – DarkWalker 2014-10-23 16:50:11