полный путь должен быть менее 260 символов? - PullRequest
0 голосов
/ 21 июня 2011

Я указываю один из пунктов меню в своем веб-приложении по указанному ниже пути

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

Когда я нажимаю на него, пользовательский интерфейс диспетчера отчетов отображает следующее сообщение:

Недопустимый путь к элементу http://localhost/Reports/Pages/Folder.aspx?ItemPath=/Parent Отчеты / дочерние отчеты. Полный путь должен быть менее 260 символов; применяются другие ограничения. Если сервер отчетов находится в основном режиме, путь должен начинаться с косой черты.

Pls. предложить. Спасибо.

Ответы [ 2 ]

0 голосов
/ 21 июня 2011

Обратите внимание, что Windows действительно реализует решение устаревшего ограничения пути символов MS-DOS 260.Это формат длинного пути UNC, который начинается с \\?\, например \\?\c:\path\file.txt.

. Если у вас есть доступ к исходному коду веб-службы, создающей эту ошибку, вы можете попытаться покопаться в коде службы.он преобразует аргументы URL в локальные пути к файлам и проверяет, помогает ли вообще использование \? \ на передней панели.

Также странно, что вы получили бы это сообщение об ошибке пути к файлу в URL.Проверьте свой код (или код веб-службы), чтобы узнать, использует ли кто-то функции Path там, где они должны использовать функции URI.

Наконец, обратите внимание, что ваш пример содержит пробелы, как в пути, так и вURI.Символы пробела определенно запрещены в URI;вам нужно будет URI экранировать их с% 20, чтобы сделать их действительными URI.Это может быть реальной причиной проблемы - веб-служба фактически не получает весь отправляемый вами URI, поскольку анализ URI останавливается на первом символе пробела.

0 голосов
/ 21 июня 2011

В Windows существует ограничение в 260 путей (или это NTFS?).Возможно, путь к папке вашего решения и дочерним папкам и имя файла для страницы aspx, обслуживающей этот запрос, длиннее 260 символов.Если это так, попробуйте переместить папку решения ближе к корневому каталогу c: \ и повторите попытку.

...