В VirtualBox, как я могу получить доступ к локальному хосту хоста из гостевой системы (Visual Studio Dev Server из виртуальной машины, тестирующей IE7)?

8528
Seth

Хост-ОС Win7 работает под управлением MyApp на сервере разработки Visual Studio, привязана к localhost: 51227, виртуальная машина - это VirtualBox, сконфигурированный с NAT. Гостевая ОС - Win XP с установленным IE7. Моя цель - отладить MyApp (работает на хосте) из IE7 (работает на гостевой).

Сервер Visual Studio Development привязывается только к петлевому сетевому устройству (т. Е. Localhost). Он не привязывается к внешнему IP-адресу моего хоста.

Я попытался получить доступ 10.0.2.2:51227 из IE7 на гостевой системе (и подтвердил, что 10.0.2.2 является адресом шлюза, использующим ipconfig), но похоже, что 10.0.2.2 привязывается к внешнему IP-адресу хоста, а НЕ к IP-шлейфу (localhost), так что это не работает.

Какие-либо предложения?

7
Я не совсем понимаю, что вы пытаетесь сделать. Вы просто тестируете функциональность на стороне клиента (макет, Javascript и т. Д.) В IE7 или пытаетесь пошагово выполнить код в самом веб-приложении .NET? James P 11 лет назад 1
Я хотел бы протестировать функциональность на стороне клиента (но в IE7 есть неприятная ошибка, поэтому я хочу использовать свой dev-сервер для быстрого изменения и изучения проблемы). Я не хочу загружать сборки на промежуточный сервер (с IP, доступным для виртуальной машины) после добавления каждого printf или небольшого эксперимента. Seth 11 лет назад 0
Я открыт для другого решения моей общей проблемы, но самое простое решение, которое я могу себе представить, - это просто «получить доступ к локальному хосту с ie7, запущенного на гостевой виртуальной машине». Может, у VirtualBox такой возможности нет? Seth 11 лет назад 0
Я не знаю, возможно ли делать то, что вы хотите, но веб-сервер разработки Visual Studio не предназначен для доступа вне контекста localhost - для этого и нужен IIS. Вы пробовали IETester - http://www.my-debugbar.com/wiki/IETester/HomePage? Он позволяет вам тестировать веб-сайты, используя разные версии IE, и я обнаружил, что он обычно очень близко соответствует выбранной версии IE. James P 11 лет назад 0

2 ответа на вопрос

8
Seth

The simplest solution for me was to use SPI Port Forward on the Host to allow access to my localhost-only service from an external network interface:

  1. Download SPI Port Forward and Run on the Host (no installer, download is a naked exe)
  2. Important: Windows Firewall will ask if SPI Port Forward is allowed to access Public networks. Check the box to allow access from public networks.
  3. Set Local Port to 8888 (or whatever you want), Remote Host to localhost, Remote port to the port of the target service on the host (in my case 51227, as VSDS is running on port 51227), and click "Activate"
  4. Access 10.0.2.2:8888 from the guest.

Note: If 10.0.2.2 doesn't work, run cmd on the guest to bring up a command line, and use 'ipconfig', and use the default gateway address, but VirtualBox currently defaults to 10.2.2.2 for this, so its a safe bet.

It should be noted that this configuration will allow EXTERNAL IP ACCESS TO VSDS, so use with caution... of course, this could be useful if you wanted to debug mobile phone support or something too.

Вы мой спаситель, я искал что-то простое, как SPI Port Forward, чтобы проверить мой мобильный сайт по сети через мой мобильный терминал. Это решение работало для меня в Windows 8. Rubens Mariuzzo 11 лет назад 0
0
jaume

Хотя VirtualBox может получить доступ к интерфейсу обратной связи на хосте (как и любая другая программа, работающая на хосте), он не предоставляет средств для доступа к нему из гостевой ОС (что также имеет место в других известных мне решениях для виртуализации).

Если VirtualBox предоставил доступ к интерфейсу обратной связи хоста, он должен создать дополнительный интерфейс для каждого гостя, связанный с интерфейсом обратной связи хоста.

Почему этот дополнительный интерфейс? Поскольку на гостевой системе любой трафик, отправленный на 127.0.0.1, будет автоматически перенаправлен на собственный интерфейс обратной связи, а не на хост.

Я могу придумать обходной путь : привязать Visual Studio Development Server к 10.0.2.2. Таким образом, ваша среда разработки недоступна извне, но доступна гостю VirtualBox (хотя я читал в комментарии Джеймса выше, что это может быть невозможно, я читал рекомендации по привязке VSw3p.exe, что, кажется, работает по крайней мере на Windows 2003 ).

Как указывает @James, я мог бы переключить свой сервер разработки внутри VS с VSDS на IIS ... но по какой-то причине мое приложение отказывается работать в этом режиме (прекрасно работает на общедоступных IIS), но в любом случае я бы действительно Скорее, оставьте мою конфигурацию разработки такой же (не нужно пристраиваться к настройкам VS каждый раз, когда я хочу протестировать IE7). Я не ожидал бы, что VirtualBox объединит host-localhost <-> guest-localhost, я надеюсь, что он предоставит второй интерфейс со стандартным IP-адресом, таким как 127.0.0.2 или что-то в этом роде. Seth 11 лет назад 0
Жаль, что это не работает ... Как примечание: 127.0.0.2 ** также ** петля. Весь диапазон 127.0.0.1-127.255.255.254 зарезервирован для обратной связи ... jaume 11 лет назад 0