10

我在 C# 中有以下代码:

1.  public static void Main(string[] args) {
2.  Uri repository = new Uri("https://svnserver:port/svn/Src/trunk");
3.  using (SvnClient client = new SvnClient()) {                
4.    client.Authentication.Clear();
5.    client.Authentication.DefaultCredentials = new System.Net.NetworkCredential("user", "pass");
6.
7.    System.Collections.ObjectModel.Collection<SvnLogEventArgs> logEntries;
8.    SvnLogArgs logArgs = new SvnLogArgs();
9.    logArgs.Limit = 1;
10.   client.GetLog(repository, logArgs, out logEntries);
11.   }
12. }

如果我删除第 4 行和第 5 行,则此代码可以正常工作。我假设它以某种方式使用了我在 TortoiseSVN 本地保存的凭据。但是,我想在服务器环境中运行它,我需要专门传入用户名/密码。但是,一旦我尝试输入登录凭据,我就会在第 10 行收到以下错误:

SharpSvn.SvnRepositoryIOException was unhandled
Message: Unable to connect to a repository at URL

我在这里做错了什么?我已验证我尝试使用的用户名/密码是否有效。

4

1 回答 1

15

我找到了答案......在第 5 行之后添加:

client.Authentication.SslServerTrustHandlers += delegate(object sender, SvnSslServerTrustEventArgs e) {
                    e.AcceptedFailures = e.Failures;
                    e.Save = true; // Save acceptance to authentication store
                };
于 2012-12-15T00:57:00.723 回答