locked
ASP.net (VB.net) IIS7.5 .netframework 2.0 において、PostBack後に別マシンで表示していた画面が表示される RRS feed

  • 質問

  • タイトル記載の環境において、Webシステムを保守しております。
    下記の操作を実施すると、PostBack後に、別のマシンで表示していた画面が表示される現象が発生しており、原因を究明したい。

    1.マシン1 で test.aspx?id=1111  でアクセスすると、id=1111のデータで画面が開く
    2.マシン2 で test.aspx?id=2222 でアクセスすると、id=1111のデータで画面が開く
    3.マシン1 の test.aspx で PostBackを発生させる
    4.3とほぼ同じタイミング(3より少し遅れて)マシン2 の test.aspx でPostBackを発生させる。
    5.[エラー発生]マシン2 で、id=1111 のデータが画面に表示されてしまう。

    セッション管理は InProc としている。

    確認すべきIIS設定内容などあれば追記いたします。

    2019年4月22日 9:37

回答

  • 自己解決しました。

    .aspx の OutputCache の設定の仕方が悪かったようです。

    [改善前]

    <%@ OutputCache Duration="1" VaryByParam="None" %>

    [改善後]

    <%@ OutputCache Duration="1" Location="Client" VaryByParam="None" %

    応答ヘッダーの
    Cache-Control public, max-age=1 から、publicのキャッシュ使ってるのが問題と思い、

    Location="Client" に変更後 Cache-Control private, max-age=1になっていることが確認でき、現象発生しなくなりました。

    • 回答としてマーク psy_clone 2019年4月23日 2:25
    2019年4月23日 2:25