在尝试将大文件(多GB)提交到Windows XP机器上VisualSVN 2.5.2 Server的新本地安装时,出现以下错误。
“413请求实体太大”
我正在使用Windows身份validation,并且已经将以下设置(然后重新启动服务器)添加到httpd-custom.conf:
LimitXMLRequestBody 0 LimitRequestBody 0
如果重要,我使用TortoiseSVN作为客户端。
还有什么需要做VisualSVN服务器接受大文件?
更新 :
SVNServer事件查看器的内容:
2012年1月13日下午3时31分45秒VisualSVN Server 2.5错误Apache 1001 CORP \ sam.johnson IOMFOX0960L无法获得下一个桶旅[500,#0] [客户端10.155.60.53]
2012/1/13 3:31:45 VisualSVN服务器2.5错误Apache 1001 CORP \ sam.johnson IOMFOX0960L无效的Content-Length [客户端10.155.60.53]
您在http_filters.c的validation代码块上发生错误:
/* Protects against over/underflow, non-digit chars in the * string (excluding leading space) (the endstr checks) * and a negative number. */ if (apr_strtoff(&ctx->remaining, lenp, &endstr, 10) || endstr == lenp || *endstr || ctx->remaining < 0) { ctx->remaining = 0; ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, f->r, "Invalid Content-Length"); return bail_out_on_error(ctx, f, HTTP_REQUEST_ENTITY_TOO_LARGE); }
所以,你删除请求正文限制是成功的。 看起来客户有错; 龟似乎是发送Content-Length头中的无效数据。 有什么办法可以捕获完整的HTTP请求(它需要是未encryption的http,并且需要像wireshark这样的捕获工具)来检查它在头部发送的内容。
“413请求实体太大”的提交错误相当于客户端的问题,而不是服务器的问题。
Subversion客户端默认使用氖库进行networking通讯。 该库不支持正确传输大文件到Subversion服务器。
作为解决方法,您可以从霓虹灯切换到农奴库。 在客户机上执行以下步骤:
%APPDATA%\Subversion\servers [global]部分 [global]部分: http-library=serf