【问题标题】:Path too long exception...ususally it's normal, occasionally a bunch of junk is inserted路径太长异常...通常是正常的,偶尔会插入一堆垃圾
【发布时间】:2013-05-04 19:21:25
【问题描述】:

Asp.net MVC 应用程序,

收到此错误:

System.IO.PathTooLongException:指定的路径、文件名或两者都太长。完全限定的文件名必须少于 260 个字符,目录名必须少于 248 个字符。

路径通常如下所示:

http://live.jobcorps.org/Home.mvc.aspx/Index

当错误发生时,它看起来像这样:

https://live.jobcorps.org/(F(j80ac5jO2I2xABtZuGvriVYFDgMP8yK591c6y9lX65rAvk5tU_VO-YX6SmSOSn3rgWwmfEpjCR5bD39u1Pds9oN3z_3cXBDbymUWbJhv6fRa55TQZHHrxzgDQZiGkxTDtogeYrNnbz1he1g4zH_XhDHGk8us_Hnl6r5WgOPvJWUg_KJU6eGiu6g-Mp5fuuriWuvbBw2))/Home.mvc.aspx/Index

我的理论是某些服务器/客户端的配置不同,并且路径中有这些额外的东西。

谁能说出导致 url 中的垃圾(会话?)的原因以及如何防止它?

【问题讨论】:

  • 有谁知道是什么导致路径变得如此之长?他们的浏览器是否关闭了cookies?
  • 任何带有完整源代码示例的最终解决方案?

标签: c# asp.net asp.net-mvc


【解决方案1】:

我认为http://technet.microsoft.com/en-us/security/bulletin/MS10-070这个安全补丁有副作用。

检查您在注册表中的 UrlSegmentMaxLength 值。 http://support.microsoft.com/kb/820129

【讨论】:

  • 两个好的答案都给出了赞成票,将对我们实施的任何一个打勾。谢谢!
  • 我收到了51度框架导致的上述异常,导致关闭应用程序池和所有用户的500错误!它正在将其优化的图像缓存在大量长路径名中。设置 HTTPRuntime web config 值没有帮助,但添加 UrlSegmentMaxLength 注册表项让我明白了。谢谢@takepara
【解决方案2】:

您可能想尝试在 Web.config 中添加一个选项:

<httpRuntime maxUrlLength="1000" relaxedUrlToFileSystemMapping="true" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    • 2012-04-21
    相关资源
    最近更新 更多