2010-12-12 23 views
0

負荷分散されたサーバープールから実行される3つのWebサイトがあります。ロードバランサは、固定セッションを使用して、セッションが初期プールに留まるようにします。HttpContext.Request.UrlとRequest.ServerVariables ["HTTP_HOST"]が異なる値を返すのはなぜですか

ウェブサイトでは、ウェブサイト固有のURLを生成する必要があります。標準的な手順に従って、私はHttpContext.Request.Urlを使用しようとしましたが、これは間違ったURLを返します。私はその後、Request.ServerVariables ["HTTP_HOST"]を使用しようとし、正しいURLを返します。

誰にもアイデアはありますか?

サイトAで

: Request.Url戻り、 でRequest.ServerVariablesのURL [ "HTTP_HOSTは"]は、URLのサイトBで

を返す:

Request.Urlが でRequest.ServerVariables URLを返し[ "HTTP_HOST"]サイトCのURL B

を返す:Request.Urlは、URL A でRequest.ServerVariables [ "HTTP_HOST"]はURLを返し

C

答えて

0

Request.ServerVariables["HTTP_HOST"]返すIISホスト、つまり、あなたのウェブサイトが応答するように設定されているホスト名。これは、あなたのページにアクセスするために実行されたURLクライアントと同じホストである場合とそうでない場合があります。クライアントは常に同じURLを実行しますが、ロードバランサはそれを別のIISインスタンスに送信するため、表示される動作は完全に論理的です。

編集:そのメモ「ウェブサイトに固有のURL」が必要な理由について混乱していますか?

関連する問題