ASP.NET url MAX_PATH限制

10 asp.net url isapi max-path

我发现ASP.NET的一个问题,我知道至少已经让另外一个人难过了.我们试图使用HttpModule来处理Web应用程序的通配符请求.生成的url是动态的,可能长达数百个字符.不幸的是,aspnet_isapi.dll文件中似乎存在一个限制,它将url中路径的长度限制为MAX_PATH,其中硬编码为260个字符.

有没有其他人遇到这个并找到了解决这个限制的方法?查询字符串参数不是一个选项.

谢谢,格雷格巴拉德

Haa*_*ked 8

这是aspnet_isapi.dll的已知问题,目前没有解决方法.在内置的Visual Studio Web服务器(也称为Cassini)中运行站点时没有看到此问题的原因是因为它是所有托管代码而不依赖于aspnet_isapi.dll.

这将在未来的ASP.NET版本中得到解决.

  • (+ 1)4年后,仍然没有修复. (5认同)

lmi*_*gle 8

我最终在web.config中使用以下内容来使用Mvc2和.Net Framework 4.0解决此问题

<httpRuntime maxUrlLength="1000" relaxedUrlToFileSystemMapping="true" />
Run Code Online (Sandbox Code Playgroud)


jon*_*911 3

问题实际上出在 Windows 中,而不是 ASP.NET 中。Windows 已将 MAX_PATH 设置为 260,当 IIS 请求更长的文件名时,它将失败。您可能已经找到了这篇 KBase 文章,但对于其他人来说: http: //support.microsoft.com/kb/q177665/。适用于:部分显示了从 NT 3.51 一直到 Vista 和 Server 2003 的预期行为。

至于解决方法,我也遇到过类似的情况,但我们会放弃避免使用查询字符串参数的尝试,无论如何都会这么做。