IIS反向代理下Subversion查询已有文件日志返回404问题求助
问题根因
IIS默认禁止请求URL中存在经过编码的斜杠(%2F),SVN查询历史文件日志时,会将文件路径中的斜杠做URL编码后传递,这类请求会被IIS直接拦截返回404,对应你遇到的E160013: File not found错误。
新增文件查询日志时请求路径不会携带编码后的斜杠,因此可以正常执行。
修复步骤
- 开启IIS双重转义许可
在你绑定svn.foo.example的IIS站点的web.config中,找到<system.webServer>节点,新增如下配置:
<security> <requestFiltering allowDoubleEscaping="true" /> </security>
也可以直接在IIS管理器中操作:进入对应站点的「请求筛选」功能,点击右侧「编辑功能设置」,勾选「允许双重转义」后保存。
- (可选)调整ASP.NET请求验证规则
如果站点启用了ASP.NET功能,还需要在web.config的<system.web>节点下新增如下配置,避免请求被ASP.NET拦截:
<httpRuntime requestPathInvalidCharacters="" requestValidationMode="2.0" /> <pages validateRequest="false" />
- 重启对应的IIS站点,再次测试旧文件的日志查询功能即可恢复正常。
内容的提问来源于stack exchange,提问作者Sören Kuklau
相关产品推荐
相关产品推荐

