ライブ サイトでエラーが発生しますが、これは開発環境では表示されず、Chrome でのみ発生するようです。これに対する解決策を少し調べてみたところ、Auth cookie にのみ問題が見つかりました。(私は過去に chrome と auth cookie について問題を提起しました) が、これは違います。
ユーザーのカートを Cookie に保存します。私はクッキーをそのように設定しました
HttpCookie responseCookie = HttpContext.Response.Cookies[CartHelper.CART];
responseCookie.PackCartCookie(vm.Cart);
拡張メソッド PackCartCookie が Cookie 値を次のように設定する場所
cookie.Value = HttpUtility.UrlEncode(cookieValue);
この結果は、次の設定で保存されている Cookie です
- ドメイン = www.foo.com
- RawSize = 230b
- パス = /
- 有効期限 = セッション
- HttpOnly = HttpOnly
- 値 = 暗号化
ユーザーがサイトを操作しているときに、カート Cookie が作成されているように見えますが、時々失われたりドロップされたりします。Elmah エラーを見て HTTP_COOKIE を確認すると、他のすべての Cookie が表示されます (他の Cookie も同じように設定されており、正常に機能します) が、カート Cookie は表示されません。
この問題のため、コードをより防御的なものに変更する必要がありました。しかし、ご想像のとおり、カート Cookie は購入プロセス全体で使用され、支払いを受け入れる購入に応答するときに失敗しましたが、カートがなくなるとシステムがクラッシュし、ユーザーには購入の成功が通知されません。幸いなことに、私はこれを早期に発見し、影響を受けたユーザーに払い戻しを行いました.
問題が発生したユーザー エージェント
- Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (Gecko のような KHTML) Chrome/29.0.1547.62 Safari/537.36
- Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (Gecko のような KHTML) Chrome/29.0.1547.57 Safari/537.36
- Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (Gecko のような KHTML) Chrome/29.0.1547.62 Safari/537.36