Доступ к серверу разработки ASP.NET с другого компьютера в сети - PullRequest
25 голосов
/ 13 ноября 2009

Я хотел бы протестировать свое веб-приложение в других браузерах. Я установил Virtual PC, чтобы сделать это. сервер разработки ASP.NET не разрешает удаленные подключения, поэтому виртуальный компьютер (другой компьютер в сети) не может получить доступ к веб-сайту.

Я нашел эту запись, которая была запущена, но решения не было.

Я понимаю, что использование localhost не будет работать. Я слышал об использовании IP-машин, но как мне получить этот правильный IP-адрес? Посмотрите на моего администратора роутера lynksys?

Если бы мне нужно было получить свой IP, я уверен, что сервер asp.net dev не разрешает удаленные подключения. Как мне это сделать?

Ответы [ 7 ]

32 голосов
/ 29 октября 2010

Ответ: нет (*). Вы не можете получить доступ к серверу разработки ASP.NET на одном компьютере с другого, даже если откроете TCP-порт брандмауэра Windows.

Из статьи MSDN "Веб-серверы в Visual Web Developer " :

Он специально создан для обслуживания или запуска веб-страниц ASP.NET в сценарии с локальным хостом (просмотр с того же компьютера, что и веб-сервер).

Другими словами, ASP.NET Development Server будет обслуживать страницы для запросов браузера на локальном компьютере. Он не будет обслуживать страницы на другом компьютере. Кроме того, он не будет обслуживать файлы, которые находятся за пределами области приложения.

(*) Вы должны будете запустить свой сайт из локально установленного IIS ... или сделать полезный взлом, используя несколько бесплатных программ, описанных в этом посте:

iPhone Доступ к серверу разработки Visual Studio ASP.NET

Используйте SPI Port Forward , чтобы принять подключения устройства, выполните следующие действия:

Установите "Локальный порт" на номер порта, к которому будет подключено устройство, обычно я использую 8080 по привычке
Установите «Удаленный хост» в localhost
Установите «Удаленный порт» на порт сервера разработки ASP.NET

Нажмите кнопку «Активировать», чтобы начать прием подключений

(примечание: убедитесь, что вы запустили программу с правами администратора)

12 голосов
/ 13 ноября 2009

Я делаю некоторые предположения о вашей настройке, поэтому имейте в виду:

Если ваша виртуальная машина - XP Professional, Vista Business, Windows 7 Professional или выше, то вы должны иметь возможность запускать IIS локально на компьютере разработчика и получать доступ к этому веб-серверу с другой машины, которая находится в той же сети, через виртуальную машину. имя.

Аналогичным образом, если вы занимаетесь разработкой на реальной машине и хотели бы использовать разные виртуальные машины для доступа к веб-приложению, вы должны убедиться, что у вас установлен IIS, создать новый веб-сайт в IIS и вы должны перейдите к веб-приложению по имени машины с ваших виртуальных машин.

В любом случае, не пытайтесь использовать встроенный веб-сервер из Visual Studio, просто опубликуйте свой сайт в IIS и работайте с ним таким образом.

Удачи и надеюсь, что это поможет некоторым.

8 голосов
/ 10 февраля 2011

Настройка переадресации портов с помощью RINETD
Подробности здесь: http://blog.waynehartman.com/articles/218.aspx

7 голосов
/ 17 августа 2012

Другой ответ, если вы не хотите использовать IIS (или туннели): https://stackoverflow.com/a/12008223/1552178

Используйте fiddler или аналогичный на вашем хосте - установите браузер на клиенте VM, чтобы использовать прокси, затем просто используйте localhost: dev_port как обычно на клиент.

Все запросы от клиента переходят на прокси на вашем компьютере разработчика, который маршруты к localhost на машине разработчика и сервере разработки ASP.net считает, что запрос от вашей машины разработчика!

4 голосов
/ 10 июля 2014

Я отвечаю на этот старый вопрос, чтобы помочь людям заставить его работать без IIS .

1. Первый шаг

Вам нужно скачать Скрипач .

После загрузки и установки Fiddler откройте его.

Зайдите в Инструменты-> Опция Fiddler-> Вкладка Подключение-> И отметьте «Разрешить подключение удаленным компьютерам» :

enter image description here

Перезапустите Fiddler.

2. Второй шаг

После этого на другом ПК в сети ИЛИ на виртуальной машине , откройте Internet Explorer-> Свойства обозревателя-> Вкладка подключения-> Настройки Lan-> Проверить "Использовать прокси-сервер для Ваша локальная сеть ":

enter image description here

  1. Адрес - это IP-адрес вашего устройства DEV.
  2. и поставить порт 8888

Теперь вы можете получить доступ к веб-серверу ASP.NET с другого ПК в сети (возможно, у вас есть дополнительные настройки, например, брандмауэр, неограниченный порт и т. Д., Но это хорошее начало)!

Для доступа к нему -> http://localhost.:54814

  • Не забывайте дополнительный пункт после "localhost"! (Перезаписать локальный локальный хост)
  • Порт "54814" в моем случае является портом веб-сервера ASP.NET.

ПРИМЕЧАНИЕ:

  • Чтобы проверить, работает ли прокси, вы можете попробовать это: http://localhost.:8888
  • Может быть, я забыл указать некоторые конфигурации, но это всегда зависит от сетевой инфраструктуры.
1 голос
/ 21 февраля 2017

Рабочее решение для Linux

Это должно работать, если вы запускаете ASP.NET Dev Server в Windows на виртуальной машине или на другом хосте и хотите получить к нему доступ из Linux

На компьютере с Windows

По какой-то причине вы не можете напрямую подключиться к порту сервера разработки ASP.NET, сначала необходимо прокси-сервер локально:

Используйте Переадресация порта SPI , чтобы принять подключения устройства, выполните следующие действия:

Установите «Локальный порт» на номер порта, к которому будет подключено устройство, например 8089. Установите для «Удаленного хоста» значение localhost
Установите «Удаленный порт» на порт сервера разработки ASP.NET

Нажмите кнопку «Активировать», чтобы начать прием подключений

(примечание: убедитесь, что вы запустили программу с правами администратора)

На компьютере с Linux

Локально перенаправить локальный порт 8089 на IP-адрес Windows (замените GUEST_IP_HERE на правильный ip):

iptables -t nat -A OUTPUT -m addrtype --src-type LOCAL --dst-type LOCAL -p tcp --dport 8089 -j DNAT --to-destination GUEST_IP_HERE:8089
iptables -t nat -A POSTROUTING -m addrtype --src-type LOCAL --dst-type UNICAST -j MASQUERADE

Это необходимо, поскольку сервер разработчиков специально ищет localhost в запросе и не будет отвечать на http://GUEST_IP_HERE:8089 с хоста

0 голосов
/ 13 ноября 2009

Откройте командную строку и введите; «ipconfig» даст вам IP-адрес вашей машины.

Если вы отключите брандмауэр (по крайней мере, для порта разработки asp.net), вы сможете набрать в браузере виртуального ПК http://192.168.1.3:3243/default.aspx

...