Может ли предварительно скомпилированное приложение-функция использовать гибридные подключения к локальным серверам?

Может ли предварительно скомпилированное приложение-функция использовать гибридные подключения к локальным серверам?

Я могу получить доступ к локальному серверу, используя функцию приложения функции сценария С#...

using (var client = new HttpClient())
{
    var result = await client.GetAsync("http://onpremisedev/dummywebapi/api/persons/1234");
    string resultContent = await result.Content.ReadAsStringAsync();
    data = resultContent;

Но когда я использую тот же код С# в предварительно скомпилированной функции приложения-функции, я получаю исключение, что имя сервера не может быть разрешено...

Exception while executing function: CallOnPremiseWebApi -> 
  An error occurred while sending the request. -> 
    The remote name could not be resolved: 'onpremisedev'

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

Оба приложения-функции работают в службе приложений, то есть не в плане потребления.

Служба приложений настроила гибридное подключение к локальному серверу через порт: 80.

Как версия сценария функции может разрешить локальное имя, а предварительно скомпилированная версия не может?


person SteveC    schedule 19.12.2017    source источник
comment
Не могли бы вы уточнить — оба сценария находятся в Функциях Azure? Находятся ли функции в одной службе приложений? Настроена ли в Azure какая-либо переадресация DNS, которая ссылается на виртуальную сеть, в которой находится служба приложений? Я был бы немного удивлен, если бы любой из них работал, предполагая, что onpremisedev не является общедоступным доменным именем. Конфигурация виртуальной сети, вероятно, важна здесь, но нам нужно больше деталей.   -  person Tom W    schedule 19.12.2017
comment
Ах. Я не знаком с гибридными подключениями службы приложений — я предполагаю, что Этот объект используется для локального подключения?   -  person Tom W    schedule 19.12.2017
comment
@TomW Да, я использую гибридные подключения службы приложений Azure.   -  person SteveC    schedule 19.12.2017


Ответы (1)


У меня была очень похожая проблема, которая может решить вашу проблему.

У меня было приложение-функция v2, которое правильно использовало гибридное соединение, и приложение-функция v1, которое не использовалось (оба размещены в одной службе приложений).

После многих разочаровывающих часов я понял, что, несмотря на то, что они находились в одной и той же службе приложений, мне нужно было перейти в «Функции платформы» -> «Сеть» -> «Настроить конечные точки гибридного подключения для этого приложения-функции».

Затем мне пришлось снова добавить гибридное соединение. (Это подсказало мне список уже существующих подключений в службе приложений). Как только я это сделал, все заработало, как и следовало ожидать.

person mfierro    schedule 25.08.2018