2

本番サイトのアプリ プールを 2 時間ごとにリサイクルしています。サイトへの最初の呼び出しが行われたときに、アプリケーション プールがベース URL (例: www.mysite.com) をキャッシュしていることに気付きました。これは、ASP.NET で相対パス (~/MyFolder/MyPage.aspx など) を解決するために使用されるため、次のように解決されます。

http://www.mysite.com/MyFolder/MyPage.aspx

ただし、サイトにはホスト名を介してアクセスできるため、たとえば

http://masdfg.my.provider.net

IIS は URL が

http://masdfg.my.provider.net/MyFolder/MyPage.aspx

イメージできるように、これにより SSL やその他の問題が発生します。どうすればこれを防ぐことができますか?

更新: 回避策は、URL リダイレクトを作成することでした。これを防ぐ方法を知っている人がいたら教えてください。

4

3 に答える 3

1

HttpContext.Current.Request.Url はキャッシュ可能なアイテムではありません。その値は、HTTP ヘッダーの HOST 値から取得されます。つまり、リクエストからアプリケーションに渡されます。

その 2 番目の URL にかかる唯一の時間は、リクエストの HOST 値がmasdfg.my.provider.net

ここには 3 つの修正方法があります。1つ目は、バインディングを設定し、リクエストをmasdfg.my.provider.net転送することですwww.mysite.com

2 つ目は、主な問題は SSL に関するものであるように思われるため、ユニファイド コミュニケーション (UC) SSL 証明書を取得してサーバーにインストールすることです。これは、mysite.com および masdfg.my.provider.net ドメイン名をカバーするためのものです。

3 つ目は、最初のサイトとまったく同じ運用ディレクトリを指す別の IIS サイトを単純に作成することです。各サイトには、担当するドメイン名が 1 つだけあります。

于 2013-01-09T17:08:41.337 に答える
1

私はそれがロングショットであることを知っていますが、IIS セットアップで同様の問題が発生しました。「バインディングの編集」から前述の「バインディング」ウィンドウに移動して解決しました。

次に、不要なバインディングをすべて削除し、サーバーが応答するホスト名 www.mydomain.com を追加しました。

最後に、Windowsホストファイルを編集しました

%windir%\System32\drivers\etc\hosts

行の追加

127.0.0.1 www.mydomain.com

これにより、www.mydomain.comが常にローカル コンピューターに解決されることが保証されます。

管理者として iisreset.exe を実行した後、私の問題は解決しました。

于 2013-01-09T14:44:00.900 に答える