Рабочий стол Parallels: доступ к локальному веб-приложению IIS из OS X (хост)

Я использую Windows 10 на OS X, используя Parallels Desktop (сеть находится в режиме SHARED). Мне нужно получить доступ к веб-приложениям, созданным в Visual Studio и работающим на IIS 10 с хоста. Например, для стандартного приложения, работающего в Windows по адресу http://localhost:1654/, я хотел бы получить к нему доступ из браузера Mac с помощью чего-то вроде http://%5Bip_virtual_machine%5D:1654.

Первым делом я полностью отключил брандмауэр Windows, отключил его в общедоступных и частных сетях, а также отключил службу брандмауэра в services.msc. Затем я проверил IP-адреса хоста и виртуальной машины. Запустив ifconfig на Mac, я получаю, что IP-адрес виртуальной машины равен 10.211.55.2, при запуске ipconfig в Windows я получаю, что IP-адрес виртуальной машины равен 10.211.55.3 (со шлюзом 10.211.55.1).

Я пытался получить доступ к веб-приложению, используя http://10.211.55.2:1654/ и http://10.211.55.3:1654/ но безуспешно. В первом случае я получаю неверный запрос - неверное имя хоста, а во втором - ERR_CONNECTION_REFUSED.

В случае, если брандмауэр все еще что-то делал, я также добавил правило для входящих подключений, разрешающее соединения для порта 1654, но результат тот же.

Я также заметил одну вещь: в файле applicationhost в C:\Windows\System32\inetsrv\config\applicationHost.config нет никаких ссылок на мои веб-приложения, созданные в Visual Studio. AFAIK Когда я запускаю веб-приложение в Visual Studio на IIS, привязка должна быть добавлена ​​в файл applicationhost, но нет записей для любого из моих веб-приложений. Могу ли я иметь некоторые проблемы с IIS?

Другое дело: наоборот работает. Я могу получить доступ к локальному серверу node.js на моем Mac из виртуальной машины, используя http://10.211.55.2:%5Bport%5D.

Но мне нужен доступ с Mac к Windows IIS. Как я могу это сделать?

1 ответ

Решение

Хорошо, я получил это работает. Дополнительные шаги:

1) Откройте CMD или Powershell от имени администратора. Добавьте запись ACL URL для нужного вам порта:

netsh http add urlacl url=http://*:[port]/ user=everyone 

2) Файл applicationhost с привязками в моем случае находится прямо в папке проекта Visual Studio. В частности, он находится в.vs / config / applicationhost.config. Откройте файл в текстовом редакторе и найдите строку с информацией о привязках для вашего приложения, что-то вроде

<bindings>
   <binding protocol="http" bindingInformation="*:1654:localhost" />                    
</bindings>

Добавьте еще одну запись с IP-адресом вашей виртуальной машины, например так:

<bindings>
   <binding protocol="http" bindingInformation="*:1654:localhost" /> 
   <binding protocol="http" bindingInformation="*:1654:10.211.55.3" />                   
</bindings>

3) (** Необязательно: может не потребоваться ***) В файле applicationhost найдите запись

<section name="anonymousAuthentication" overrideModeDefault="Deny" />

и изменить его на

<section name="anonymousAuthentication" overrideModeDefault="Allow" />

Теперь я могу получить доступ к веб-приложению, работающему на IIS, с Mac, используя адрес http://10.211.55.3:1654/.

Надеюсь это поможет.

Принятый ответ не сработал для меня, но я, наконец, добился успеха после выполнения описанных здесь шагов. Моя установка состоит из Parallels 14, работающей на macOS 10.14.2, и Visual Studio 2017, работающей на Windows 10.

В итоге:

  1. В Parallels убедитесь, что для вашего Типа сети установлено значение "Общая сеть" и что включен "Общий доступ к приложениям Mac с Windows".
  2. В вашей виртуальной машине Windows откройте PowerShell, введите ipconfigи скопируйте IPv4-адрес вашей виртуальной машины. Затем откройте "Настройки", перейдите в "Система"> "О программе" и скопируйте имя устройства вашей виртуальной машины.
  3. В macOS добавьте запись в ваш /etc/hosts файл, который отображает IP-адрес вашей виртуальной машины на имя устройства, например 10.211.55.3 your-device-name
  4. Вернитесь в виртуальную машину Windows, в папку для проекта Visual Studio, отредактируйте <binding> ключ в .vs/config/applicationhost.config (Обратите внимание, что .vs скрытая папка), чтобы использовать имя устройства вашей виртуальной машины вместо localhostнапример, <binding protocol="http" bindingInformation="*:1234:your-device-name" />
  5. Откройте PowerShell от имени администратора и выполните следующую команду, чтобы включить внешний доступ, используя имя устройства вашей виртуальной машины и порт из шага № 4: netsh http add urlacl url=http://your-device-name:1234/ user=everyone
  6. Откройте брандмауэр Windows и добавьте новые входящие и исходящие правила для своего проекта. Для обоих правил выберите "Порт" в качестве типа правила и "TCP" в качестве протокола, введите порт с шага № 4 и выберите "Разрешить соединение"
  7. В Visual Studio перейдите в свойства своего проекта, перейдите на вкладку "Интернет" и измените URL своего проекта, чтобы использовать имя устройства Windows вместо localhostнапример, http://your-device-name:1234/, Установите флажок "Переопределить корневой URL-адрес приложения" и снова введите этот же URL-адрес.
  8. Отладка вашего проекта с помощью браузера "Открыть в Mac". Если вы не видите эту опцию, нажмите "Обзор с помощью...", затем "Добавить...", а затем добавьте запись, которая указывает на C:\Program Files (x86)\Parallels\Parallels Tools\SIA\SharedIntApp.exe

После отладки ваше приложение запустится в Safari (или в браузере Mac по умолчанию) по адресу http://your-device-name:1234!

  1. Включите IIS(информационные службы Интернета) из функций Windows.
  2. Зайдите в cmd и получите ip виртуальной машины Windows.
  3. На вашем Mac используйте IP-адрес компьютера с Windows в качестве локального.

Просто добавьте: при использовании ядра asp.net и пустельги (в Parallels) и желании подключиться к работающему серверу с вашего Mac Host, вы можете запустить сервер, используя локальный IP-адрес гостевой машины Windows. Итак, выполните IPCONFIG и получите локальный IP-адрес:

WebHost
  .CreateDefaultBuilder()
  .UseStartup(startupType)
  .UseUrls("https://10.211.55.3:5001")
  .ConfigureSettings(servicesToAdd)
  .Build()
  .Run();

Это позволит вам подключиться, например, к https://10.211.55.3:5001/api/values с вашего HOST mac

Другие вопросы по тегам