2011-06-21 78 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解析將停止在第一個空格字符處。

相關問題