2

Web ガーデンモードでセッションの動作をテストしていました。

Operaを除いて、すべての主要なブラウザーが (サーバー上で) 1 つのプロセスしか使用しないのはなぜですか? そしてそれはどのように行われますか?

これは非常に単純な Web アプリケーションです。

分離コード:

protected void Page_Load(object sender, EventArgs e)
{
    Response.Write(Process.GetCurrentProcess().Id);
}

マークアップ:

<div>
    <asp:Button ID="Button2" runat="server" Text="Button" />
</div>

Operaでボタンをクリックするたびに、(ワーカー プロセス数に応じて) 異なる数値が表示されますが、これは正常な動作です。しかしChromeでは、常に同じプロセス ID を取得します。

4

1 に答える 1

1

ここで何か問題があり、Web ガーデンのブラウザー プロセスに粘着性がありません。

私はしばらく前に同じテストを行いましたが、この問題に直面したことはありません。asp.netが次のリクエストを取得するプロセスを選択する方法について、正確なメカニズムはわかりませんが、ブラウザには固執しません。

もう少し

Web ガーデンは、同じコンピューター/サーバー/プールで複数のプロセスを使用して、各クライアントの要求を処理する場合です。

あなたProcess.GetCurrentProcess().Idが尋ねるページを実際に実行するプロセスを示します。次のリクエストを実行するために選択されるプロセスをasp.netがどのように選択するかはわかりません。おそらく、それぞれの可用性と、それぞれの実行のスレッドに関係しています。

クライアントと呼び出し元のブラウザー データを処理する必要はありませんでした。したがって、同じまたは異なるIDを取得した場合、サーバーの負荷、おそらくクライアント上のページのキャッシュに関係している必要がありますが、ブラウザーに関係する必要はありません.

于 2013-03-29T21:41:22.157 に答える