web-dev-qa-db-ja.com

アプリケーションルートURLの上書きは実際には何をしますか?

説明を見つけることができるインターネット全体の唯一の場所は [〜#〜] msdn [〜#〜] です:

アプリケーションのルートURLの代替パスを指定します。このオプションは、Webアプリケーションのルートがプロジェクトのルートではない場合に使用します。

From here 「アプリケーションルート」はASP.NETでチルダを使用するときに取得するパスであることを理解しました。したがって、プロジェクトのプロパティ-Web-[アプリケーションルートの上書き]に移動して別のURLを指定すると、ティルデがそのURLにマップされると期待します。

しかし、そうではありません。たとえば、私のウェブは仮想ディレクトリ-http://localhost/WebApplication1にあり、「アプリケーションルートの上書き」ではhttp://localhost/WebApplication2またはhttp://localhostまたはhttp://WebApplication2(すべてローカルに存在する)を指定しようとしていますIIS)。今私が書くとき

Response.Redirect("~/test2/login");

http://localhost/WebApplication2/test2/loginにリダイレクトされると思います。代わりに、「アプリケーションルート」をオーバーライドしなかったかのように、http://localhost/WebApplication1/test2/loginにリダイレクトされます。

それで、この機能は実際に何を行うと思いますか?または、何かが足りず、適切に定義しなかったために機能していないのでしょうか?

18
BornToCode

アプリケーションルートURLを上書きしても、アプリケーションルートがアプリケーション内のどこにあるかは変わりません。アプリケーションのルートに到達するために使用されるURLを変更します。 IISはホスト名の検証を行うため、localhost:[PORT]以外の手段でアプリケーションにアクセスするかどうかを指定するために使用されます。

たとえば、それをwww.myapp.comにオーバーライドすると、これをホストファイルに追加することでアプリケーションに到達できます。

127.0.0.1     www.myapp.com

これは、リモートデバイス(コンピューターの仮想マシン、またはネットワーク上のモバイルデバイス)がアプリケーションとしてlocalhostに移動できないため、アプリケーションを利用できるようにする場合に特に役立ちます。住所。

12
IronSean