对于我从事的产品,我在一些 ASP.NET/Castle Monorail 站点上遇到了一个小问题(或者可能不是那么小)。这是一个相当遗留的系统(写得早于我的时间),它使用 GET 请求,并在查询字符串中包含大量信息。我们最近遇到了查询字符串长度限制,对于我们需要传输到服务器的数据量,将数据临时存储在 cookie 中也是不合理的(我们已经远远超过了每个 cookie 4096 字节的限制,而且我们设置了很多 cookie,因此我们可能也接近或处于每个域的 cookie 限制。)
我想知道除了 POST (在某些情况下可能更改为 POST 请求,但可能根本不可能)之外,是否还有其他选择可以解决这个问题。我希望 StackOverflow 上的其他人也遇到过类似的问题,并且有一些神奇的解决方案(即使用 javascript 压缩数据,编码为 base64,传递给单个查询字符串项?只是不确定是否有任何库可以压缩以与 .NET 3.5 中的内置压缩类兼容的方式使用 javascript 处理数据。)
更新:
我最终选择的解决方案是发布到临时控制器。这个临时控制器拉取大量数据,将其卡在共享会话中(生产服务器位于不使用粘性会话/IP 的大型多银行服务器场中),并对实际控制器执行 GET,后者拉取来自共享会话的数据。不是最高效的解决方案,但它解决了问题。