2012-05-06 12 views
0

私は2つのasp.netプロジェクトを持っています。 APIとWebクライアントプロジェクト。テストするときは、同じオリジンポリシーを克服して、異なるポートでテストすることはできません。ドメインをlocalhostのIIS7仮想ディレクトリにマップする

visual studioを使用してAPIをhttp://localhost/apiにマップしましたが、他のプロジェクトはhttp://localhost/にマップできません。ルートにする必要があるのは、アプリケーションがルート(/)への参照(フォーム、スクリプトなど)を含んでいるからです。読んだ後、wwwrootに公開する必要があります。これはやりたくありません。

私の次のオプションドメインを自分の仮想ディレクトリhttp://localhost/webhttp://localhost/api =>someDomain.comsomeDomain.com/apiにマップすることを前提にしています。これはどうすればいいですか?参照の問題を解決するためにhttp://localhost/web

  1. ポイントhttp://localhost/

    http://localhost/web app.com 
    http://localhost/api api.app.com 
    

    問題(1が私のために働くだろういずれかの解決):ホストファイルを編集する作業をdoens't。

  2. 仮想ディレクトリをhttp://localhost/に作成します。 enter image description here
  3. ドメインをlocalhost仮想ディレクトリにマップします。

答えて

2

ローカルホストで「リバースプロキシ」を設定して、必要な操作を行うことができます。

クライアントがhttp://localhost/apiに接続すると、プロキシはその要求をhttp://somedomain.com/apiに中継し、応答を取得して元のクライアントに返すことができます。クライアントの観点から、要求はlocalhostに対して行われており、応答はlocalhostから取得されます。ネームサーバーに手を出すことはありません。

IIS Team's announcement of Reverse Proxy

あなたはIIS6を持っているか、Microsoftの拡張機能を使用しない場合は、他のオプションがあります。 1つはIIRFです。

+0

私がしたいことは、私のブラウザの 'localhost'に行き、プロキシは' localhost/web'にそれを送ります。普通の 'localhost'ルートを使用しようとしているので、これはリバースプロキシで見ることができますか? –

+0

はい;出来るよ。 HTMLページで参照される画像、スタイル、JavaScriptのような他のアセットへのパスについては注意が必要です。しかし、はい、あなたはそれを行うことができます。 – Cheeso

関連する問題