0

ログインしている URL に応じて機能とデータが異なる ASP.net Web アプリケーションがあります。

IIS で複数のホストをバインドでき、Web アプリケーションが request.URL に問い合わせて、使用するコードとデータを特定できるため、デプロイされた環境ではすべてが正常に機能します。

例えば。http://foo.bar.comは、 http: //test.bar.com とは異なるコードを実行します 。

この問題は、私の開発マシンで VS2010 でデバッグする際に発生します。構成でデフォルトのサイト URL をハードコーディングできますが、同時に複数の URL を実行する必要があります。例: site1.localhost、site2.localhost、site3.localhost ....

system32/drivers/etc の hosts ファイルを編集してみました。

127.0.0.1  localhost site1.localhost site2.localhost

しかし、コードで site1.localhost をヒットすると、request.Url は常に localhost になります。

とにかく私はこれを回避することができますか?

4

3 に答える 3

1

でホスト名をマッピングした場合はsystem32/drivers/etc/hosts、このコードを試してください。これは正しいパスを返すはずです

     string host = Request.Headers["Host"];
     string pathAndQuery = Request.Url.PathAndQuery;

     string fullPath = host + pathAndQuery;
于 2012-05-22T02:49:25.463 に答える
0

mfras3r のコメントに基づいています。経由で動作させることができます

IIS で Web サイトをセットアップし、その Web サイトが MVC アプリケーションのディレクトリを指すようにします。IIS ですべての URL のバインディングを Web サイトに追加します。localhost を指す /etc/hosts のエントリとして URL を追加します。

アプリケーションをビルドします。(IIS が原因で失敗するので実行しないでください) デバッグ -> IIS プロセスにアタッチします。

于 2012-05-22T02:38:34.893 に答える
0

vs2010 のデバッグ サーバーはフル機能の IIS ではないと思います。複数サイトには対応していません。したがって、あなたの状況では、「アタッチ」またはリモート デバッグを使用することをお勧めします。開発マシンに IIS をインストールできるかどうかによって異なります。

于 2012-05-22T02:52:42.493 に答える