Может ли предварительно скомпилированное приложение-функция использовать гибридные подключения к локальным серверам?
Может ли предварительно скомпилированное приложение-функция использовать гибридные подключения к локальным серверам?
Я могу получить доступ к локальному серверу, используя функцию приложения-скрипта 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, которое не использовалось (оба размещались в одной службе приложения)
После многих разочаровывающих часов я понял, что, несмотря на то, что они находились в одной службе приложений, мне пришлось перейти к "Функции платформы" -> "Сеть" -> "Конфигурировать конечные точки гибридного подключения для этого приложения функции".
Затем мне пришлось снова добавить гибридное соединение. (Это вызвало у меня список уже существующих подключений в службе приложений). Как только я это сделал, все заработало, как и следовало ожидать.