2012-03-30 7 views
0

ここで何が起こっているのかよく分かりませんが、Cookieを設定しようとするとエラーメッセージ「Server cannot modify cookies after HTTP headers have been sent」が表示されることがあります。私が言うことができるのは、主に何らかの検索ボットです。ボットはクッキーを無効にしていますか?私はクッキーを無効にするときに私はそれを再現することはできません。以下の私のコードはコントローラで実行されています。それは正しいか?HTTPヘッダーが検索ボットで送信された後、サーバーはCookieを変更できません

   var cookie = new HttpCookie(Config.ApiCookie) 
       { 
        HttpOnly = true, 
        Secure = false, 
        Value = authenticationResponse[SessionKey].ToString() 
       }; 

       if (HttpContext.Current.Response.Cookies[Config.ApiCookie] != null) 
       { 
        HttpContext.Current.Response.Cookies.Set(cookie); 
       } 
       else 
       { 
        HttpContext.Current.Response.Cookies.Add(cookie); 
       } 
+0

クッキーを設定する前にデータをフラッシュしている可能性がありますか?それは、あなたが記述するエラーメッセージが伴うものです。 – Keith

+0

私はそうは思わない、それが私を困惑させる理由です。 –

+1

非同期の処理が行われていますか?無効にする何かを行うことができる私がここに見る唯一のものは 'authenticationResponse [SessionKey]'です...その値を "テスト"かそのようなものに設定してください –

答えて

1

問題はバグの.Setにありました。下のコードを代わりに使用し、問題を修正しました。

if (HttpContext.Current.Response.Cookies[Config.ApiCookie] != null) 
      { 
       HttpContext.Current.Response.Cookies[Config.ApiCookie].Value = cookie.Value; 
      } 
      else 
      { 
       HttpContext.Current.Response.Cookies.Add(cookie); 
      } 
関連する問題