Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# URL上的System.IO.PathTooLongException_C#_Asp.net_Iis_Iis 7_Pathtoolongexception - Fatal编程技术网

C# URL上的System.IO.PathTooLongException

C# URL上的System.IO.PathTooLongException,c#,asp.net,iis,iis-7,pathtoolongexception,C#,Asp.net,Iis,Iis 7,Pathtoolongexception,我遇到了一个问题,长URL将引发System.IO.PathTooLongException。这有点奇怪,因为System.IO.PathTooLongException实际上是针对物理文件的,它与URL无关 例如,我有一个如下所示的URL: products-for-sale.mvc/searchterm1-something/price-1000-1500/searchterm3-etcetc/ 基本上,搜索词会使URL膨胀。我们还允许关键字搜索,如果用户正在寻找某个特定的东西,它会变得

我遇到了一个问题,长URL将引发System.IO.PathTooLongException。这有点奇怪,因为System.IO.PathTooLongException实际上是针对物理文件的,它与URL无关

例如,我有一个如下所示的URL:

products-for-sale.mvc/searchterm1-something/price-1000-1500/searchterm3-etcetc/ 
基本上,搜索词会使URL膨胀。我们还允许关键字搜索,如果用户正在寻找某个特定的东西,它会变得有点大。作为补充说明,URL上的.mvc是应用程序在IIS6上运行时的遗留问题,不支持无扩展URL,但在这里它不应该成为问题

我认为问题在于,它使用URL查找物理文件。我可能错了,但我认为这就是问题所在。几乎每一篇关于PathTooLongException的文章都围绕着实际的文件,而不是URL太长

在IIS处理程序映射中,我可以关闭以检查是否存在物理文件(我认为这是IIS6中的设置?),但在IIS7中,在处理程序映射的请求限制下,它只有“仅当请求映射到时调用处理程序”,然后是文件/文件夹/文件或文件夹。在IIS中没有为.mvc打勾,并且我发现没有其他地方可以尝试说“如果使用此扩展名,请不要查找物理文件”


我对如何解决这个问题的猜测可能有点离谱。

在.NET4.0中,需要将设置为大于260

<httpRuntime maxUrlLength="260" />


使用适用于以前的.Net版本。

代码项目文章中的内容似乎是投票率最高的解决方法:如果我处理的是物理文件,这是正确的,但在这种情况下,URL不会映射到物理文件(不应这样检查)。我已编辑了您的标题。请参阅“”,其中的共识是“不,他们不应该”。