添加到CookeContainer时抛出CookieException;饼干不长

问题描述 投票:0回答:1

将 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.

c# iis-7
1个回答
0
投票

您的域可能还有其他 Cookie,每个网站不能存储超过 20 个 Cookie。

通过使用带有子键的单个 cookie,您可以使用分配给您的网站的 20 个 cookie 中的更少。

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

© www.soinside.com 2019 - 2024. All rights reserved.