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

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

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

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

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

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

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

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

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

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

1 ответ

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

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

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

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

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