IIS7 で実行されている asp.net 2.0 Web アプリケーションがあります。Web ガーデンと asp.net 状態サーバーを使用しています。
ページには、多くのユーザー コントロールがあります。ユーザー コントロールの 1 つで、メソッドが実行されるたびにログに行を書き込む button_click イベントのログを追加しました。ボタンをクリックすると、定期的にのみログ エントリが表示されます。これは、ボタンがクリックされたときにイベントが常に発生するとは限らないことを示しています。ボタンをクリックしたときにボタンクリックメソッドが常に実行されているとは限らないので、ログを追加しました。私たちが目にしている証拠は、私たちの疑いを裏付けているようです。
Web ガーデンを削除してサイトを 1 つのアプリケーション プールに戻すと、アプリケーションは通常の状態に戻ります (ボタン イベントが毎回発生します)。アプリケーションをローカルの開発者マシンで実行すると、正常に動作します。
他の誰かがこのような行動を見たことがありますか? 問題を絞り込むための次のステップに関する推奨事項はありますか?
編集:要求されたイベントのソースは次のとおりです。
protected void btnSearch_Click(object sender, EventArgs e)
{
Log.Error("Searching...");
SearchArgs args = CtrlToSearchArgs();
SessionManager.SearchQueryString = Request.QueryString;
string url = NavigationManager.BuildSearchUrl(args, null, "*** page url removed here ***");
if (args.PageSize.HasValue)
{
SessionManager.SetInSession(SessionManager.Key.SEARCH_PAGESIZE, args.PageSize.Value.ToString());
}
else
{
SessionManager.SetInSession(SessionManager.Key.SEARCH_PAGESIZE, "10");
}
SessionManager.SearchPanelData = url;
//Set the new args into the session
SessionManager.SearchControlArgs = args;
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Redirect(url);
}
編集 # 2: 明確化 - このセットアップは複数のサーバーを使用しておらず、ロード バランサーの下にもありません。単一のサーバーで複数の AppPools を使用しています。