トップ回答者
IIS6.0のアプリケーションプールと、クッキーの関係について教えてください

質問
回答
-
> プログラムはレガシーASPで組んでいて、クッキーの読み書きはサーバ
> サイド(IIS)で行っております。Cookie の基本を理解されているでしょうか?
上記の質問者さんの回答の「クッキーの読み書きはサーバサイド(IIS)で行っております」というところを、具体的にどうやっているか説明できますか?
一旦サーバーからの発行を受けてブラウザが保持している Cookie を、サーバー側から直接書き換えたり消去したりすることはできません。サーバーができるのは、応答ヘッダーの Set-Cookie: を使ってクッキーを送信するだけで、後はブラウザ任せになります。
ブラウザが保持している既存の Cookie と同名の Cookie がサーバーからの応答ヘッダーの Set-Cookie: に含まれていれば、通常ブラウザはその内容で既存の Cookie を書き換えるという仕組みになってます。
ただし、同名でもスコープが違うと、スコープが違う Cookie は書き換えられません。スコープについては以下のページの「Cookie のスコープの制御」のセクションを見てください。
ASP.NET の Cookie の概要
http://msdn.microsoft.com/ja-jp/library/ms178194.aspxありそうなのがパス設定の違いで、具体例としては、以前、以下のようなことがありました。
クッキーのパス設定
http://surferonwww.info/BlogEngine/post/2012/01/21/Path-setting-for-Cookie.aspx上記のページにも書いてありますが、IE の開発者ツールを起動して、[キャッシュ(C)]⇒[Cookie 情報を表示する(I)]で調べると何かわかるかもしれません。
- 編集済み SurferOnWww 2013年11月27日 2:16 誤記訂正:I9 ⇒ IE
- 回答の候補に設定 佐伯玲 2013年11月28日 1:03
- 回答としてマーク 佐伯玲 2013年12月10日 6:12
2013年11月27日 2:15 -
SurferOnWwwさんも答えられていますがHTTP Cookieの基本がわかっていないので原因究明もままならないのではありませんか?
CookieはWebサーバーからWebブラウザーに書き込みの命令が送られ、反対にWebブラウザーでは過去に書き込まれた内容がWebサーバーに送信される仕組みです。
それを踏まえて、質問者さんの「読めるけど上書きできない」という表現を読み解きますと、「読めるけど」→ つまりWebブラウザーからASPへ送信されている。この部分は正常。
「上書きできない」(書こうとしても書けない)→ ASPから送信したがWebブラウザー上で書き込まれていない。この原因は
- 通信経路、すなわちネットワークに異常がありデータが破損する
- Webブラウザーに問題があり書き込みが正常動作しない
のいずれかとなります。…となると質問文にあります「アプリケーションプール」は全くの無関係ということになり、では質問者さんはなぜアプリケーションプールという話題を持ち出したのかということになります。ここから想像できる原因は1つだけです。
- プログラムがバグっていてそもそもCookieの書き込みが行われていない
IIS6.0 アプリケーションプールのメモリ増加についてのスレッドとも合わせますと、質問者さんのプログラムがバグっているのではありませんか? 本当に書き込みの処理が動作していることは確認できていますか?
2013年11月27日 3:58
すべての返信
-
> プログラムはレガシーASPで組んでいて、クッキーの読み書きはサーバ
> サイド(IIS)で行っております。Cookie の基本を理解されているでしょうか?
上記の質問者さんの回答の「クッキーの読み書きはサーバサイド(IIS)で行っております」というところを、具体的にどうやっているか説明できますか?
一旦サーバーからの発行を受けてブラウザが保持している Cookie を、サーバー側から直接書き換えたり消去したりすることはできません。サーバーができるのは、応答ヘッダーの Set-Cookie: を使ってクッキーを送信するだけで、後はブラウザ任せになります。
ブラウザが保持している既存の Cookie と同名の Cookie がサーバーからの応答ヘッダーの Set-Cookie: に含まれていれば、通常ブラウザはその内容で既存の Cookie を書き換えるという仕組みになってます。
ただし、同名でもスコープが違うと、スコープが違う Cookie は書き換えられません。スコープについては以下のページの「Cookie のスコープの制御」のセクションを見てください。
ASP.NET の Cookie の概要
http://msdn.microsoft.com/ja-jp/library/ms178194.aspxありそうなのがパス設定の違いで、具体例としては、以前、以下のようなことがありました。
クッキーのパス設定
http://surferonwww.info/BlogEngine/post/2012/01/21/Path-setting-for-Cookie.aspx上記のページにも書いてありますが、IE の開発者ツールを起動して、[キャッシュ(C)]⇒[Cookie 情報を表示する(I)]で調べると何かわかるかもしれません。
- 編集済み SurferOnWww 2013年11月27日 2:16 誤記訂正:I9 ⇒ IE
- 回答の候補に設定 佐伯玲 2013年11月28日 1:03
- 回答としてマーク 佐伯玲 2013年12月10日 6:12
2013年11月27日 2:15 -
SurferOnWwwさんも答えられていますがHTTP Cookieの基本がわかっていないので原因究明もままならないのではありませんか?
CookieはWebサーバーからWebブラウザーに書き込みの命令が送られ、反対にWebブラウザーでは過去に書き込まれた内容がWebサーバーに送信される仕組みです。
それを踏まえて、質問者さんの「読めるけど上書きできない」という表現を読み解きますと、「読めるけど」→ つまりWebブラウザーからASPへ送信されている。この部分は正常。
「上書きできない」(書こうとしても書けない)→ ASPから送信したがWebブラウザー上で書き込まれていない。この原因は
- 通信経路、すなわちネットワークに異常がありデータが破損する
- Webブラウザーに問題があり書き込みが正常動作しない
のいずれかとなります。…となると質問文にあります「アプリケーションプール」は全くの無関係ということになり、では質問者さんはなぜアプリケーションプールという話題を持ち出したのかということになります。ここから想像できる原因は1つだけです。
- プログラムがバグっていてそもそもCookieの書き込みが行われていない
IIS6.0 アプリケーションプールのメモリ増加についてのスレッドとも合わせますと、質問者さんのプログラムがバグっているのではありませんか? 本当に書き込みの処理が動作していることは確認できていますか?
2013年11月27日 3:58