Когда я получаю функцию Azure, я получаю 500 кодов состояния
Я пытаюсь сделать запрос Get для функции Azure (v1), которая использует NReco HtmlToImageConverter, но по какой-то причине я получаю код состояния 500 со следующим сообщением
Нет MediaTypeFormatter для чтения объекта типа "Объект" из содержимого с типом носителя "application/octet-stream".
РЕДАКТИРОВАТЬ: я не думаю, что проблема в том, что описано здесь
Я публикую буквально пустую функцию V1 в Azure, и она не работает.
[FunctionName("Function1")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
{
log.Info("C# HTTP trigger function processed a request.");
// parse query parameter
string name = req.GetQueryNameValuePairs()
.FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0)
.Value;
// Get request body
dynamic data = await req.Content.ReadAsAsync<object>();
// Set name to query string or body data
name = name ?? data?.name;
return name == null
? req.CreateResponse(HttpStatusCode.BadRequest, "Please pass a name on the query string or in the request body")
: req.CreateResponse(HttpStatusCode.OK, "Hello " + name);
}
Я не знаю, связано ли это, но при публикации я получаю следующий диалог (на который я в настоящее время отвечаю "Нет")
1 ответ
В HTTP-запросе вам нужно установить Content-Type на:
contentType: 'application/json; charset=utf-8'
,
Версия функций на вашем хосте Azure не соответствует локальной версии.
Кажется, что ваша функция времени выполнения в локальной версии v1, но функция на портале может быть "бета", поэтому их версии не совпадают.
Таким образом, вы можете создать новую функцию Azure на портале, и ее версия по умолчанию - "~1". Проверьте время выполнения на портале в настройках приложения-функции, как показано ниже:
Затем опубликуйте свою локальную функцию в Azure, и она будет работать нормально.