2013-08-01 5 views
4

Je travaille sur une bande-api et j'ai mis le fichier de configuration Web pour accepter 6144 que la longueur maximale de l'URL ci-dessousBad Request - api web URL non valide

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

Quand j'appelle l'api avec 299 caractères tout fonctionne bien, mais avec plus de 299 caractères, il sert une demande incorrecte - URL non valide

url exemple:

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

+0

Essayez d'utiliser IIS Express au lieu de Cassini. –

+0

nope toujours le même – rushd

+0

peut-être quelque chose dans ce poste aide http://stackoverflow.com/questions/1185739/asp-net-mvc-url-routing-maximum-path-url-length –

Répondre

6

J'ai eu le même problème lors de l'auto-hébergement web-api. Je suppose que la limite que vous frappez est le UrlSegmentMaxLength par défaut de Http.sys.

Pour résoudre ce problème, vous devez ajouter un nouveau Registre DWORD sous

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP \ Parameters

enter image description here

appelés UrlSegmentMaxLength et donner ceci la valeur que vous désirez:

UrlSegmentMaxLength 260 0 - 32 766 caractères Nombre maximal de caractères dans un segment de chemin d'accès URL (la zone entre les barres obliques dans l'URL). Si zéro, c'est la longueur qui est bornée par la valeur maximale d'un ULONG.

Références:
https://serverfault.com/questions/66410/iis-6-on-x64-and-long-urls
http://support.microsoft.com/kb/820129