c #: не удалось установить соединение с сервером - PullRequest
0 голосов
/ 15 января 2019

Я знаю, что этот вопрос задавался несколько раз, но не смог найти ничего подходящего точно моему сценарию.

У меня есть 2 веб-API, скажем, WebAPI1 и WebAPI2.

WebAPI1 разработан с использованием .Netcore и развернут в Azure.
WebAPI2 разработан с использованием .NET Framework 4.6.1 и развернут на виртуальной машине Azure с использованием IIS.

Теперь я должен сделать запрос от WebAPI1 к WebAPI2. Я позвонил в WebAPI2 с помощью httpclient.

После хостинга при попытке сделать запрос выдает следующую ошибку:

Не удалось установить соединение с сервером.

Я добавил порты 80 и 443 к виртуальной машине в правила для входящих портов. Это не решило мою проблему.
Я предполагаю, что это может быть проблема с брандмауэром. Так может кто-нибудь подсказать мне, как это решить.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация для решения этой проблемы. Большое спасибо!

РЕДАКТИРОВАТЬ

IP-адрес моей виртуальной машины выглядит как 10.x.x.x
В IIS я добавил приложение на веб-сайте по умолчанию с именем: WebAPI2.
В веб-API у меня есть имя метода контроллера GetData().
У меня есть префикс маршрута: [RoutePrefix("api/App")].
Таким образом, URL, который я использую, -> http://10.x.x.x/WebAPI2/api/App/GetData.

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Похоже, что вы не смогли получить доступ к WebAPI2 на виртуальной машине Azure из WebAPI1 в службе веб-приложения Azure с URL-адресом http://10.x.x.x/WebAPI2/api/App/GetData, поскольку общедоступной службе веб-приложения Azure не удалось найти частный IP-адрес в URL-адресе.

В этом случае вы можете включить Интеграция с VNet в службе веб-приложений Azure. Это дает вашему веб-приложению доступ к ресурсам вашей виртуальной сети, но не предоставляет частный доступ к вашему веб-приложению из виртуальной сети. Кроме того, эти сети затем могут быть подключены к вашим локальным сетям с использованием технологий VPN.

enter image description here

Более того, если веб-приложение Azure настроит свои виртуальные сети, некоторые ограничения / замечания по работе в сети могут быть другими в изолированной программной среде веб-приложения Azure.

В частности, ограничения на частные и местные адреса игнорируются, если целевой сетевой интерфейс принадлежит приложение. Доступ к другим адаптерам VNet на той же машине невозможен, и все остальные сетевые ограничения все еще применяются.

0 голосов
/ 15 января 2019

Убедитесь, что вы привязали домен к веб-сайту iis (WebAPI2) или напрямую используете IP-адрес виртуальной машины с указанным портом.

...