ホストOSはVisualStudio Development ServerでMyAppを実行しているWin7であり、localhost:51227にバインドされています。VMはNATで構成されたVirtualBoxです。ゲストOSはWin XP with IE7がインストールされています。私の目標は、IE7(ゲストで実行)内からMyApp(ホストで実行)をデバッグすることです。
Visual Studio Developmentサーバーは、ループバックネットワークデバイス(ローカルホストなど)にのみバインドします。 notホストの外部IPアドレスにバインドします。
ゲストのIE7から10.0.2.2:51227にアクセスしようとしましたが(10.0.2.2がipconfigを使用してゲートウェイアドレスであることを確認しました)、10.0.2.2はループバックIPではなくホストの外部IPにバインドしているようです(localhost)なので、これは機能しません。
助言がありますか?
私にとって最も簡単な解決策は、ホストでSPIポートフォワードを使用して、外部ネットワークインターフェイスからローカルホスト専用サービスへのアクセスを許可することでした。
注:10.0.2.2が機能しない場合は、ゲストでcmdを実行してコマンドラインを表示し、「ipconfig」を使用してデフォルトゲートウェイアドレスを使用しますが、VirtualBoxは現在デフォルトで10.2.2.2になっているため、安全策。
この構成ではVSDSへの外部IPアクセスが許可されるため、注意して使用することに注意してください...もちろん、これは携帯電話のサポートなどをデバッグする場合にも役立ちます。
VirtualBoxは(ホスト上で実行されている他のプログラムと同様に)ホスト上のループバックインターフェイスにアクセスできますが、ゲストOSからアクセスする手段を提供しません(これは私が知っている他の仮想化ソリューションにも当てはまります)。
VirtualBoxがホストのループバックインターフェイスへのアクセスを提供した場合、ホストのループバックインターフェイスにバインドされた追加のインターフェイスをすべてのゲストに作成する必要があります。
なぜこの追加のインターフェース?ゲストでは、127.0.0.1に送信されたトラフィックは、ホストではなく、独自のループバックインターフェイスに自動的に転送されるためです。
回避策を考えることができます:Visual Studio DevelopmentServerを10.0.2.2にバインドします。このように、開発環境には外部からアクセスできませんが、VirtualBoxゲストからアクセスできます(上記のJamesのコメントで不可能かもしれないと読みましたが、 VSをw3p.exe
にバインド の推奨事項を読みました。 、これ 少なくともWindows 2003で動作するようです )。