0

将 Cookie 添加到 CookieContainer 时出现 CookieException,如下所示:

        ProxyRequest.CookieContainer = new CookieContainer();
        Uri serverUri = new Uri(ServerURL);
        foreach (string name in Context.Request.Cookies.AllKeys)
        {
            var requestCookie = Context.Request.Cookies[name];
            ProxyRequest.CookieContainer.Add(new Cookie(requestCookie.Name, requestCookie.Value, "/", serverUri.DnsSafeHost));
        }

CookieException 的文档说,当 cookie 大于 CookieContainer 中的 MaxCookieSize 时会发生这种情况;但是,MaxCookieSize 是 4096,而这个 cookie 只有 96 个字节长。

4096是否限制了容器中所有cookie加在一起的限制?我得到这个例外还有其他原因吗?

有例外的消息是:The 'Value'='84-B2,PX,TT|15-TL|30-T6,TL|23-GA,TL,TT|29-MR|25-CX,GA,TT|31-CX,GA,PX|9-B2,TF,TR|7-B2,CX,PX,TL,TT' part of the cookie is invalid.

4

1 回答 1

0

您的域可能有其他 cookie,您每个站点不能存储超过 20 个 cookie。

通过使用带有子键的单个 cookie,您使用的站点分配的这 20 个 cookie 中的更少。

此外,单个 cookie 占用大约 50 个字符作为开销(过期信息等),加上您存储在其中的值的长度,所有这些都计入 4096 字节的限制。如果您存储五个子键而不是五个单独的 cookie,则可以节省单独 cookie 的开销,并且可以节省大约 200 个字节。

希望这可以帮助

拉胡尔·贾恩·拉胡尔马纳萨

于 2013-01-11T00:15:21.353 回答