Функции Azure локальной разработки HttpRequestMessage не содержат определения для GetQueryNameValuePairs. - PullRequest
0 голосов
/ 23 мая 2018

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

[5/22/18 9:03:21 PM] run.csx(8,23): error CS1061: 'HttpRequestMessage' does not contain a definition for 'GetQueryNameValuePairs' and no extension method 'GetQueryNameValuePairs' accepting a first argument of type 'HttpRequestMessage' could be found (are you missing a using directive or an assembly reference?)
[5/22/18 9:03:21 PM] run.csx(20,15): error CS1501: No overload for method 'CreateResponse' takes 2 arguments

Функция отлично работает на портале.

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Чтобы привести конкретный пример кода, который работает, ниже будет работать в Функции v2:

public static async Task<HttpResponseMessage> Run(
       [HttpTrigger(AuthorizationLevel.Function, "get", "post", 
        Route = null)] HttpRequest req, ILogger log)
{

       int id;
       bool parsedId = int.TryParse(req.Query["id"], out id);
       ...
}
0 голосов
/ 23 мая 2018

Как сказал @Mikhail, это вызвано неправильной версией основных функций (CLI).Загружаемый код работает с CLI v1 (.Net Framework), в то время как v2 (возможно, установлен) установлен на .NET Core.

Чтобы установить необходимый CLI, выполните установку CLI .Если локальная ОС (например, MacOS) не поддерживает CLI v1, мы можем обратиться к CLI v2, который может работать кроссплатформенно.В CLI v2 код v1, созданный на портале, не может быть использован, поэтому нам нужно создать функции локально или изменить время выполнения приложения-функции портала на ~ 2, а затем снова создать и загрузить.

Примечаниечто до того, как мы изменим время выполнения, приложение функции должно быть пустым, потому что функции, созданные до этого, зависят от другого времени выполнения и обычно становятся недействительными после изменения.

...