2017-02-11 6 views
1

У моего простого веб-приложения есть веб-проект api и web mvc. из приложения mvc Я потребляю веб-сервис api с помощью ajax.Потребляющая сеть api, порты на разных машинах

Сейчас мой URI выглядит так

var uri = 'http://localhost:2266/api/cars'; 

и на веб стороне апи мне нужно включить CORS для общения с моим MVC приложение.

[EnableCors(origins: "http://localhost:2256", headers: "*", methods: "*")] 

эта установка работает просто отлично на моей машине, так как я хочу поделиться этим с моим другом, как я могу сделать это порты значения 2256 и 2266 быть одинаковым на каждой машине? \

Или, если это а не то, что вы предлагаете настроить для этих значений?

Спасибо, но, очевидно, я не был достаточно ясен: Я спрашиваю, как я могу знать, на другом компьютере, какой порт следует использовать, и при том, что включить этот порт вместо этого 2256, 2266?

+0

Дайте несколько значений от запятой, разделяющие истоки – Developer

ответ

1

Номер порта просто набор инструментов (VS), что делает его легким для вас, чтобы отладить локально (localhost) - это «отделяет» каждый из ваших веб-сайтов, назначая случайное число порта все живое в вашей локальной машина под «localhost» (он же «домен»).

Вы можете назначить один из них (или изменить любые VS-назначения) с предостережением, чтобы убедиться, что он не конфликтует с каким-либо другим сервисом/существующим портом, используемым на вашем локальном компьютере (подробнее см. Ниже).

"поделиться этим с моим другом"

не зная, что это значит. Как и выше, localhost - это local, поэтому при условии, что в сети (жить/производство) - вы назначьте номер порта (в настройках вашего сервера/IIS) - это ваш API, чтобы вы «диктовали», как могут «внешние» друзья доступа/подключения.

Предостережения:

Как уже упоминалось выше, так же, как в локальной среде (которая является менее ограничительным быть локальным), в производстве/живом Интернете, помимо стандартных портов (80, 443, 20, 21, 22 , 25 и т. Д.), Вы можете столкнуться с проблемами с брандмауэрами, используемыми портами (конфликтами с другими существующими службами) и т. Д., Что является широкой темой, и, откровенно говоря, это было давно, так как я сделал net ops - TLDR; если они являются полностью отдельными приложениями (как кажется), то вам, вероятно, лучше делать то же самое на живом - например,субдоменов - www.foo.com (MVC) api.foo.com (API), а не иметь дело с назначением номера портов вручную на всех (будет применяться по умолчанию - 80 для http, 443 для https).

Hth.

0

Вы можете разделить несколько происхождение запятыми:

[EnableCors(origins: "http://localhost:2256,http://localhost:2266", headers: "*", methods: "*")] 

От MSDN:

Параметры происхождение Тип: System.String разделителями-запятыми список происхождения , которые разрешено доступ к ресурсу. Используйте «*», чтобы разрешить все.

0

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

Лучше всего разместить свой веб-API с помощью имени домена (например, apionlocal.com) на локальном компьютере и создать запись хоста на локальном компьютере.

Запись хоста будет выглядеть 127.0.0.1 apionlocal.com

Получить netrowk IP вашего компьютера, запустив «IPCONFIG» команду в командной строке и делиться ею с вашим другом.

Вашему другу также необходимо ввести запись хоста на своем компьютере с IP-адресом вашего устройства.

Запись хоста будет выглядеть <<your computer IP>> apionlocal.com

Ваш друг должны вызвать API с помощью имя_домена «apionlocal.com».

Вы можете настроить несколько источников в «EnableCors» с использованием значений, разделенных запятой.

EnableCors(origins: "http://localhost:2256,<<Url of your friend's application>>", headers: "*", methods: "*")] 
+0

Примечание: предположительный вы делаете - 'ipconfig' - Является ли«друг»в той же локальной (под) сети? Если нет, то это общедоступный IP-адрес или нет? Если да: Является ли на локальной машине IIS, настроенной для внешних сообщений? Если нет: больше вещей, чтобы сделать в дополнение к проверке ранее упомянутой проверки IIS – EdSF

+0

Да, я полагаю, что оба компьютера находятся в одной сети. Если это не так, то, безусловно, предстоит еще большая работа. –