2011-06-21 52 views
0

我点在我的web应用程序的菜单项下面的路径之一完整路径必须小于260个字符?

http://localhost/Reports/Pages/Folder.aspx?ItemPath=/Parent Reports/Child Reports 

当我点击它的报表管理器UI显示以下信息:

该项目“的路径http://localhost/Reports/Pages/Folder.aspx?ItemPath =/Parent Reports/Child Reports'无效。完整路径长度不得超过260个字符;其他限制适用。如果报表服务器处于纯模式,则路径必须以斜线开头。

请注意。建议。谢谢。

+0

twitter? :)听起来像Windows C宏MAX_PATH。 – kenny

+0

您可能需要对url进行一些编码以处理空白空间。 –

+0

@ AD.Ne:已经这样做了。 – stackoverflowuser

回答

0

Windows中肯定有260个路径限制(或者是NTFS?)。也许解决方案文件夹的路径和服务该请求的aspx页的子文件夹和文件名长于260个字符。如果是这种情况,请尝试将解决方案文件夹移到c:\ root附近并重试。

+2

绝对不是** NTFS。实际上,Windows内核支持长达'USHORT_MAX'字符的路径。这是'shlwapi.dll',他把这个愚蠢的限制放在你身上。 – Mehrdad

0

请注意,Windows确实实施了传统MS-DOS 260字符路径限制的解决方案。这是Long UNC路径格式,以\\?\开头,例如\\?\c:\path\file.txt

如果您有权访问产生此错误的Web服务的源代码,您可以尝试在将URL参数转换为本地文件路径的服务代码中进行挖掘,并查看正面上的\?\是否有助于事关重大。

这似乎很奇怪,你会得到这个文件路径错误消息的URL。检查您的代码(或Web服务的代码)以查看是否有人正在使用Path函数,他们应该使用URI函数。

最后,请注意,您的示例包含空格字符,无论是在路径中还是在URI中。空格字符在URI中绝对禁止;您需要使用%20将它们转义为使其成为有效的URI。这可能是问题的真正原因--Web服务实际上并未接收您发送的整个URI,因为URI解析将停止在第一个空格字符处。

相关问题