httpcontext.request.urlおよびrequest.servervariables [“ http_host”]が異なる値を返すのはなぜですか
-
08-10-2019 - |
質問
ロードバランスの取れたサーバーのプールから実行される3つのWebサイトがあります。 Load-Balancerは、粘着性のセッションを使用して、セッションが初期プールにとどまることを確認します。
Webサイトでは、Webサイトに固有のURLを生成する必要があります。標準的な手順に従って、httpcontext.request.urlを使用しようとしましたが、これは間違ったURLを返します。次に、request.servervariables ["http_host"]を使用しようとしましたが、それが正しいURLを返します。
誰かがアイデアを持っていますか?
サイトa:request.urlはurl a request.servervariables ["http_host"]を返しますurl aを返します
サイトB:
request.urlはurl a request.servervariables ["http_host"] url bを返します
現場C:
request.urlはurl a request.servervariables ["http_host"] url cを返します
解決
Request.ServerVariables["HTTP_HOST"]
IISホストを返します。つまり、ホスト名のWebサイトは応答するように設定されています。それは、ページに到達するために実行されたURLクライアントと同じホストである場合とそうでない場合があります。クライアントは常に同じURLを実行するため、表示される動作は完全に論理的ですが、ロードバランサーはそれを異なるIISインスタンスに送信します。
編集:そのメモで、なぜ「ウェブサイトに固有のURL」が必要なのかと混同されていますか?