Я разработал и протестировал функцию Azure. Локально протестировано с C#, Powershell, Почтальоном. Все работает нормально.
Я публикую sh функцию на Azure, и у меня есть .azurewebsites. net. Я перезапускаю все локальное тестирование с новым URL-адресом, и снова все отлично работает.
Однако, единственный раз, когда он не работает, я проверяю его как веб-приложение в разработке.
string url = "https://myFunction.azurewebsites.net";
string key = "[my key]";
HttpClient client = new HttpClient();
//Add function key to header
client.DefaultRequestHeaders.Add("x-functions-key", key);
//Create a JSON body which gets sent to server.
var jsonBody = new { app = applicationName, ADAccount = adUserName };
//Run as an asynchronous
Task.Run(async () =>
{
string _url = $"https://myFunction.azurewebsites.net/api/DoTheThing";
Debug.WriteLine("Calling function");
var data = await client.PostAsJsonAsync(_url, jsonBody);
Debug.WriteLine(data); // Write out the result of running the function
});
Сначала я подумал, что это связано с CORS, поэтому я установил его на *
Единственный способ проверить эту функцию локально - это запустить функцию эмулятора функций. Когда он запускается в эмуляторе, я получаю
Calling function...
{
...
status: 200
...
}
Но когда я пытаюсь нажать опубликованную функцию. все, что я получаю, это
Calling function...
Это асинхронная c функция, и я не получаю никаких тайм-аутов, о которых я знаю, она просто сидит там навсегда. Это происходит не только со мной, но и с компьютером моих коллег, поэтому я предполагаю, что это связано с браузером и почему ему не нравится взаимодействие с онлайн-ресурсами или что-то напутало.
Я ошибаюсь, предполагая что я могу просто вызвать опубликованную функцию azure из среды разработки? Или я что-то пропустил?