4

我正在开发一个 web-api,我已将 web 配置文件设置为接受 6144 作为 url 的最大长度,如下所示

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

当我用 299 个字符调用 api 时,一切正常,但超过 299 个字符时,它会提供一个错误的请求 - 无效的 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 回答