2013-08-01 1 views
4

Я работаю на веб-API и я установить конфигурационный файл веб принять 6144 как максимальная длина в URL, как нижеBad Request - Недопустимый URL веб-апи

<system.web> 
    <compilation debug="true" targetFramework="4.5" /> 
    <httpRuntime maxUrlLength="6144" 
       relaxedUrlToFileSystemMapping="true" 
       targetFramework="4.5"/> 

Когда я называю апи с 299 символов все работает отлично, но с более чем 299 символов, он обслуживает до Bad Request - Неправильный URL

образец URL:

http://localhost:56835/api/multibuys/10270001C1001034900|10358419P4001027620|10781772P4805004950|10781772P4805004950|10781772P4805004950|10781772P4805004950|10781772P4805004950|10781772P4805004950|10781772P4805004950|10781772P4805004950|10781772P4805004950|10781772P4805004950|10781772P4805004950|

+0

Попробуйте использовать IIS Express вместо Cassini. –

+0

nope все равно тот же – rushd

+0

может быть что-то в этом посте помогает http://stackoverflow.com/questions/1185739/asp-net-mvc-url-routing-maximum-path-url-length –

ответ

6

Я имел та же проблема, когда сам хостинг web-api. Я бы предположил, что предел, который вы нажимаете, - это UrlSegmentMaxLength по умолчанию от Http.sys.

Чтобы это исправить, необходимо добавить новый DWORD реестра под

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP \ Parameters

enter image description here

называется UrlSegmentMaxLength и дать это значение, которое вы хотите:

UrlSegmentMaxLength 260 0 - 32,766 символов Максимальное количество символов в сегменте URL-адреса (область между косой чертой в URL-адресе). Если нуль, это длина, которая ограничена максимальным значением ULONG.

Ссылки:
https://serverfault.com/questions/66410/iis-6-on-x64-and-long-urls
http://support.microsoft.com/kb/820129