2017-05-10 6 views
6

唯一の場所はMSDNである:アプリケーションルートの上書きは本当に何をしますか?私は説明を見つけることができる全体のインターネット上の

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

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

しかし、そうではありません。たとえば、私のWebは仮想ディレクトリにあります。http://localhost/WebApplication1 "Override application root" http://localhost/WebApplication2またはhttp://localhostまたはhttp://WebApplication2(いずれも私のローカルIISに存在します)を指定しようとしています。今すぐ書くとき

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

私はhttp://localhost/WebApplication2/test2/loginにリダイレクトされることを期待しています。 しかし、私はhttp://localhost/WebApplication1/test2/loginにリダイレクトされます。あたかも私が "アプリケーションルート"を上書きしなかったかのようです。

この機能は実際に何をすると思われますか?それとも、私が何かを逃しているし、それを正しく定義していないために動作していないかもしれませんか?

答えて

5

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

たとえば、あなたがwww.myapp.comにそれをオーバーライドする場合は、あなたのホストにこれを追加することで、アプリケーションに到達することができますファイル:リモートへのアプリケーションが利用できるようにしている場合

127.0.0.1  www.myapp.com 

は、これは特に便利かもしれませんデバイス(コンピュータ上の仮想マシン、またはネットワーク上のモバイルデバイス)は、アプリケーションアドレスとしてlocalhostにナビゲートできないためです。

+0

良い答え、私は説明をすべて探していて、どこにも見つかりませんでした!なぜ私はまだ理解していないのですが、なぜなら、IIS上のバインディングをそのWebサイトに追加し、「ホスト名」「www.myapp.com」で定義できるからです。これはまったく同じ効果を達成するようです? – BornToCode

+3

IISExpressをローカル開発用に使用している場合、そのような設定を行うためのGUIはほとんどありません。限り、ビルドの設定でそのオプションを使用するか、IISExpress設定ファイルを手動で編集することができます。 – IronSean

関連する問題