この問題は、あなたの提案のおかげで解決されました。詳細は下部をご覧ください。どうもありがとうございました!
当社の ASP.NET Web サイトは、いくつかの特定の高度に安全な国際的な場所からアクセスされます。正常に動作していますが、非常に奇妙な動作を示す別のクライアント ロケーションを追加しました。
特に、ユーザーが検索基準を入力して検索ボタンをクリックすると、結果リストは空を返します。「0 件の結果が返されました」というテキストさえ表示されないため、Repeater コントロールがまったくバインドされていないかのようになります。同様の動作は、サイトの他の部分でも見られますが、すべてではありません。ユーザーはサイトに正常にログインでき、プロファイル情報が表示されます。
それらとまったく同じ資格情報を使用してローカルでサイトにログインしましたが、サイトはここから正常に機能します。慎重に手順を実行したので、ユーザーの問題ではないと確信しています.
検索結果ページが最初にロードされるときに、検索結果ページの Page_Load にバインドします (条件はクエリ文字列にあります)。すなわち
if (!IsPostBack) {
BindResults();
}
BindResults() メソッド呼び出しをコメント アウトすることで、まったく同じ動作をローカルで再現できます。
IsPostBack の値がどのように計算されるか知っている人はいますか? 非常に安全なファイアウォール設定により、別のページからのリダイレクトであっても IsPostBack が常に true を返す可能性はありますか? 問題は他の場所にある可能性があるため、それはニシンである可能性があります。ただし、結果を正確に複製します。
私はサイトにアクセスできないので、トラブルシューティングは指示を出し、結果を教えてもらうことに限られています。
御時間ありがとうございます!
追加情報: クライアントは、既定のルールを実行する Microsoft ISA 2006 ファイアウォールの背後にあります。このサイトは Internet Explorer の信頼済みサイト リストに追加され、FireFox と Google Chrome で試してみましたが、すべて同じ結果でした。
解決策:私にとっての勝者は、Fiddlerを使用するという提案でした。Web 開発者がなくてはならない優れたツールです。これを使用して、問題を再現するまで、リクエストからさまざまなヘッダーを取り除くことができました。このような紛らわしい問題でよくあることですが、実際にはこのバグを引き起こした 2 つの要因がありました。
要因 1 – 可能な場合、Web アプリケーションはすべての主要なブラウザーでサポートされている GZIP 圧縮を使用します。ファイアウォールは、GZIP 解凍サポート (Accept-Encoding: gzip、deflate) を指定するヘッダーを取り除いていました。
要因 2 – コードのバグにより、コンテンツが非圧縮で送信されるときに一部の処理がバイパスされました。この問題は、アプリケーションが GZIP 解凍をサポートしている限られた利用者によって使用されていたため、以前は気付かれませんでした。