SVN“禁止访问‘/svn/myproject’,但仅限于 Tortoise

Aso*_*oub 3 svn tortoisesvn

我正在尝试使用 tortoise 来检查带有虚拟机的项目,但我得到了

无法连接到存储库“ http://svn.mycompany/svn/myproject ”访问/svn/myproject'被禁止

但这不是一个正确的问题,因为在我的物理计算机上,我可以使用相同的帐户(每次都会打开 Windows 识别弹出窗口)毫无问题地执行此操作(无论是使用 tortoise、eclipse svn、chrome 等) 。

我还可以在我的虚拟机上毫无问题地访问http://svn.mycompany/svn/并查看“myproject”文件夹。

更糟糕的是:在我的虚拟机上,使用 Internet Explorer 和 Eclipse 的 subversion 的 URL 都没有任何问题。

我的物理计算机上的 Tortoise 没有配置任何代理,我的虚拟机也是如此。也许它使用 IE 的代理或类似的东西?

我看过其他问题,但大多数问题根本无法访问存储库。这也不是区分大小写的错误(因为没有大写)。

我尝试过重新安装它,使用tortoise自带的svn CLI,清理识别数据。任何人都知道我能做什么?(除了更改 SVN 客户端或使用 eclispe 的 svn 来检查所有内容)

Aso*_*oub 5

简而言之:

我必须深入找到解决方案,但基本上,我的一些客户端与我的服务器不兼容,服务器告诉他们“403禁止访问”(但没有客户端会准确地告诉我这一点,因为它是一个html页...)。

我现在使用旧版本的 SVNKit:我的服务器是 1.8.8,我的工作客户端小于 1.9,而我的非工作客户端大于或等于 1.9。所以我不得不使用旧的 TortoiseSVN。这肯定是服务器管理员做出的选择。

我还清理了所有凭证(即使我做了多次但没有任何效果......)

长答案:

这个问题也发生在另一个 eclipse 上(我必须对不同的项目使用不同的 eclipse),它也有一个更新的 svn 客户端(颠覆性的,1.9 中的 SVNKit)并且有同样的问题(即“访问被禁止”)。使用任何浏览器或我的其他 eclipse 的颠覆(SVNKit 1.8.4)都不会出现这个问题。

我使用wireshark来查看为什么有些请求被拒绝,而另一些则没有。用户代理不同(仅由于版本)。从我所看到的使用 eclipse'SVN

  1. SVN客户端尝试使用http/xml请求连接到服务器(还有ACK等,但这并不重要)。这两种情况下的第一个请求没有任何授权/凭证(在请求的 http 部分)。
  2. 服务器响应没有凭据或缺少凭据。它实际上是框架数据部分中的自定义 html 答案,但它是一个HTTP/1.1 401 Unauthorized.
  3. 现在,客户端发送相同的 HTTP 请求,但带有凭据。
  4. 服务器回答HTTP/1.1 200 OK
  5. 交换正常进行。

如果我使用更新的 SVN 版本,第一个客户端请求似乎没有不同(除了用户代理),但服务器的答案是HTTP/1.1 403 Forbidden

(我只是看了一下数据部分,当它不起作用时,它是一个 html 页面,说明我的客户端可能不兼容......好吧,从乌龟那里看不到这一点。所以,“禁止”不是'不是因为用户名/密码错误或用户权限问题,而是版本问题...)

我发布了长答案,以防您遇到类似的问题:尝试使用 Wireshark 从服务器读取 HTTP 答案的数据部分,因为您的 SVN 客户端可能不会(甚至 CLI 也不会)。

哦还有:如何清理 eclipse 的 SVN 凭据/sf/answers/1518538171/