使用sharpsvn驱动程序进行subversion身份验证

时间:2012-01-26 01:33:14

标签: c# svn authentication sharpsvn

我按照以下步骤设置了我的subversion服务器:http://www.codinghorror.com/blog/2008/04/setting-up-subversion-on-windows.html

服务器在我的localhost上运行

配置

这是我的配置文件:

anon-access = read
auth-access = write
password-db = passwd
authz-db = authz

AuthZ的:

[/]
* = w

passwd中:

[users]
plorio = pass
test = pass

使用sharpSvn驱动程序的代码

var svn = new SvnClient();
svnClient.Authentication.DefaultCredentials = new NetworkCredential("test",
                                                                    "pass",
                                                                     new Uri("svn://localhost/main").AbsoluteUri);

var localFilename = "C:\\testFile.txt";
var commitArgs = new SvnCommitArgs();
commitArgs.LogMessage = "test";
svn.Commit(localFilename, commitArgs); // <<< error:

错误

svn.Commit(localFilename,commitArgs);出现以下错误:

提交失败(详情如下):

  • innerException:{"Authentication error from server: Username not found"}
  • SvnErrorCode:SharpSvn.SvnErrorCode.SVN_ERR_RA_NOT_AUTHORIZED
  • SubversionErrorCode:170001
  • StackTrace:

    在SharpSvn.SvnClientArgs.HandleResult(SvnClientContext客户端,SvnException错误)中的f:\ qqn \ sharpsvn-dist-1.6 \ src \ sharpsvn \ svnclientargs.cpp:第76行    在SharpSvn.SvnClientArgs.HandleResult(SvnClientContext客户端,svn_error_t *错误)的f:\ qqn \ sharpsvn-dist-1.6 \ src \ sharpsvn \ svnclientargs.cpp:第42行    在SharpSvn.SvnClient.Commit(ICollection`1路径,SvnCommitArgs args,SvnCommitResult&amp; result)中的f:\ qqn \ sharpsvn-dist-1.6 \ src \ sharpsvn \ commands \ commit.cpp:第136行    在SharpSvn.SvnClient.Commit(String path,SvnCommitArgs args)中的f:\ qqn \ sharpsvn-dist-1.6 \ src \ sharpsvn \ commands \ commit.cpp:第74行    在Zephyr.OnDemand.WorkbookManagementService.WorkbookManagementOperations.UpdateWorkbook(String client,ManagedWorkbookDetails details,Stream content)中的C:\ src \ zod \ ci-tests \ SVN \ WorkbookManagementService \ WorkbookManagementOperations.cs:第165行    在C:\ src \ zod \ ci-tests \ SVN \ Program.cs中的SVN.Program.Main(String [] args):第24行    在System.AppDomain._nExecuteAssembly(Assembly assembly,String [] args)    在System.AppDomain.ExecuteAssembly(String assemblyFile,Evidence assemblySecurity,String [] args)    在Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()    在System.Threading.ThreadHelper.ThreadStart_Context(对象状态)    在System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,对象状态)    在System.Threading.ThreadHelper.ThreadStart()

我相信Subversion配置或svnClient.Authentication.DefaultCredentials中存在错误,如果有人有任何想法会有所帮助。提前谢谢。

1 个答案:

答案 0 :(得分:1)

<强>问题 我正在从另一个Subversion工作目录复制我的工作目录。这是有问题的,因为我也复制了.svn文件夹。这导致程序尝试并提交到.svn文件夹中定义的服务器,这会导致身份验证错误。

<强>解决方案 从工作目录中删除.svn文件夹并重新添加和提交文件