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の数が少なくなります。

さらに、1つのCookieはオーバーヘッド(有効期限情報など)に約50文字を使用し、それに加えて、Cookieに格納する値の長さを使用します。これらはすべて、4096バイトの制限にカウントされます。5つの個別のCookieではなく5つのサブキーを保存すると、個別のCookieのオーバーヘッドが節約され、約200バイトを節約できます。

お役に立てれば

ラウール・ジャインrahulmanasa

于 2013-01-11T00:15:21.353 に答える