私の ASP.NET MVC3 アプリケーションには、2 つの非常に単純なコントローラー アクションがあり、そのうちの 1 つContentResult
はハードコードされた短いテキストを返し、もう 1 つはHttpStatusCodeResult
コード 403 を返します。
アプリケーションがデプロイされ、同じコンピューターからそのコントローラー アクションによって処理されるルートに要求のパックが数回送信され、別のコンピューターからそれらのルートに同等の要求のパックが送信されます。その間に構成の変更は実行されず、アプリケーション プールは再起動されません。
IIS ログを確認すると、time-taken
(ネットワーク遅延、DNS ルックアップなどを含まない、要求が Web サーバー内で費やした時間) は、要求が同じコンピューターから送信されたかどうかによって、また、どのアクションが呼び出されたか。同じコンピューターからの場合time-taken
、両方のアクションで約 15 ミリ秒です。別のコンピューターからの場合time-taken
、アクションが返されるのに約 260 ミリ秒、ContentResult
アクションが 403 を返すのに約 100 ミリ秒かかります。
要求が別のコンピューターから送信されたときに、応答本文でコンテンツが返されるかどうかに明らかに依存関係があります。
私のコードには、リクエストの発生元と結果に応じてリクエストの処理方法を変更する明示的なロジックがありません。
タイミングの違いの原因は何ですか?