在做URL传参时,遇到如题的问题,引起这一原因是由于所传参数长度大于URL默认限制的长度大小。

解决方法:

第一步,在web.config文件中的<system.web>节点下添加<httpRuntime maxQueryStringLength="2097151" maxUrlLength="2097151"/>。

第二步,在以下注册表项下,可以创建下列 DWORD 值:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

注册表项默认值有效值范围功能说明
 MaxFieldLength 16384 64 - 65534 (64K - 2) 字节 设置每个标头的上限。请参见 MaxRequestBytes。它会将每个 URL 的最大字符数限制在大约 32K 左右。
 MaxRequestBytes 16384 256 - 16777216 (16MB) 字节 确定请求行和标头的总大小的上限。
默认设置是 16KB。 如果此值小于 MaxFieldLength,则调整 MaxFieldLength 值。
 UrlSegmentMaxLength 260 0- 32,766 字符  URL 路径段(URL 中斜杠之间的部分)中的最大字符数。如果为零,则其长度受 ULONG 最大值的限制。

第三步,只有重新启动 HTTP 服务,对注册表所做的更改才会生效。此外,可能还需要重新启动所有相关的 IIS 服务。(或者重新启动计算机)

要重新启动 HTTP 服务、类型和所有相关的 IIS 服务,请按照下列步骤操作:

  1. 依次单击“开始”、“运行”,键入 Cmd,然后单击“确定”。
  2. 在命令提示符处,键入 net stop http,然后按 Enter。
  3. 在命令提示符处,键入 net start http,然后按 Enter。
  4. 在命令提示符处,键入 net stop iisadmin /y,然后按 Enter。

    注意:所有依赖 IIS Admin Service 服务的 IIS 服务也将停止。请记下在停止 IIS Admin Service 服务时停止的 IIS 服务。在下一步中,将需要重新启动其中的每项服务。
  5. 重新启动在步骤 4 中停止的 IIS 服务。为此,请在命令提示符处键入 net start servicename,然后按 Enter。在该命令中,servicename 是要重新启动的服务的名称。例如,要重新启动 World Wide Web Publishing Service 服务,请键入 net start "World Wide Web Publishing Service",然后按 Enter。