kms_ Ответов: 3

Указанный путь, имя файла или и то, и другое слишком длинны


В своем проекте я использую http api, который возвращает xml-ответ. Проблема в том, что http - адреса имеют значительное количество параметров и слишком длинны. Вот почему я получаю эту ошибку:
Указанный путь, имя файла или и то, и другое слишком длинны. Полное имя файла должно быть не более 260 символов, а имя каталога-не более 248 символов.

Я попробовал в файле webconfig написать:
<httpRuntime maxUrlLength="1000" relaxedUrlToFileSystemMapping="true"/>


Но это не сработало..
Я попытался поместить длинную строку в uri, но затем visual studio сообщает об ошибке и хочет получить строку.
Вот мой код
string encoded = Server.UrlEncode("https://test.httpapi.com/api/domains/register.xml?auth-userid=0&auth-password=password&domain-name=domain.asia&years=1&ns=ns1.domain.com&ns=ns2.domain.com&customer-id=0®-contact-id=0&admin-contact-id=0&tech-contact-id=0&billing-contact-id=0&invoice-option=KeepInvoice&protect-privacy=true");
try
{
    XmlDocument doc = new XmlDocument();
    doc.Load(encoded);
    ....other code to get the loaded xml data....
}


Мне нужен способ обойти это ограничение для < 260 символов. Строка, которую я опубликовал, - это всего лишь демонстрация, моя строка становится еще длиннее после того, как я добавляю все переменные. Я много искал эту проблему и ничего не получил, даже попробовал "\\?\" ведьму обойти, но не для http-пути. Пожалуйста помочь..

3 Ответов

Рейтинг:
28

Michael dg

Привет,
Вы можете использовать сервис tinyurl для сокращения URL-адреса.


Рейтинг:
2

E.F. Nijboer

Как вы уже знаете, он не может быть длиннее 248/260 символов, а Ваш url-адрес-292 символа, и поэтому он должен быть длинным. Это окна... ограничено лицензией...

Более подробная информация о компании XmlDocument.Load здесь: http://msdn.microsoft.com/en-us/library/875kz807.aspx[^]

Удачи вам!


Рейтинг:
1

Aditya Prakash Roy

Привет,

вам просто нужно скопировать папку проекта из вашего пути в корневой каталог (например:-d:\abc\abc\xyz\YourProject в d:\YourProject )


Максимальная длина пути к файлу ошибка решена.этот трюк работает в моем случае.

спасибо


AnvilRanger

Этому вопросу уже более 2 лет, и он принял ответы, плюс ваше решение не имеет ничего общего с реальным вопросом. Url-адрес должен был быть длинным, а не путем к файлу.