4

私は web-api に取り組んでおり、以下のように url の最大長として 6144 を受け入れるように web 構成ファイルを設定しました

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

299 文字で API を呼び出すと、すべて正常に動作しますが、299 文字を超えると、Bad Request - Invalid URL が返されます

サンプル URL:

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

4

1 に答える 1

6

web-apiをセルフホスティングするときに同じ問題が発生しました。あなたが打っている制限は、UrlSegmentMaxLengthHttp.sysのデフォルトだと思います。

これを修正するには、新しいレジストリ DWORD を下に追加する必要があります

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters

ここに画像の説明を入力

を呼び出し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

于 2013-08-28T12:22:56.043 に答える