Как я могу использовать функциональное приложение с веб-крючком SharePoint? - PullRequest
0 голосов
/ 05 февраля 2020

Я работаю над SharePoint webhook, используя приложение функции. Я использую Используя Azure Функции с веб-зацепками SharePoint [Ссылка]. Я создал функцию в Microsoft azure, используя приложение функции, в котором я получил код по умолчанию следующим образом:

public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
 {
    log.LogInformation("C# HTTP trigger function processed a request.");
    string name = req.Query["name"];
    string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
    dynamic data = JsonConvert.DeserializeObject(requestBody);
    name = name ?? data?.name;

    return name != null
    ? (ActionResult)new OkObjectResult($"Hello, {name}")
    : new BadRequestObjectResult("Please pass a name on the query string or in the request body");
}

Затем я заменил данный код функции на код, указанный в run () ссылка. Я попытался запустить программу, но она выдала мне следующую ошибку:

2020-02-05T07:40:16.362 [Error] Function compilation error
Microsoft.CodeAnalysis.Scripting.CompilationErrorException : Script compilation failed.
   at async Microsoft.Azure.WebJobs.Script.Description.DotNetFunctionInvoker.CreateFunctionTarget(CancellationToken cancellationToken) at D:\a\1\s\src\WebJobs.Script\Description\DotNet\DotNetFunctionInvoker.cs : 314
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.Azure.WebJobs.Script.Description.FunctionLoader`1.GetFunctionTargetAsync[T](Int32 attemptCount) at D:\a\1\s\src\WebJobs.Script\Description\FunctionLoader.cs : 55
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.Azure.WebJobs.Script.Description.DotNetFunctionInvoker.GetFunctionTargetAsync(Boolean isInvocation) at D:\a\1\s\src\WebJobs.Script\Description\DotNet\DotNetFunctionInvoker.cs : 183
2020-02-05T07:40:16.580 [Warning] run.csx(11,62): warning CS0618: 'TraceWriter' is obsolete: 'Will be removed in an upcoming version. Use Microsoft.Extensions.Logging.ILogger instead.'
2020-02-05T07:40:16.632 [Error] run.csx(16,34): error CS1061: 'HttpRequestMessage' does not contain a definition for 'GetQueryNameValuePairs' and no accessible extension method 'GetQueryNameValuePairs' accepting a first argument of type 'HttpRequestMessage' could be found (are you missing a using directive or an assembly reference?)
2020-02-05T07:40:16.757 [Error] run.csx(47,19): error CS1061: 'CloudQueue' does not contain a definition for 'CreateIfNotExists' and no accessible extension method 'CreateIfNotExists' accepting a first argument of type 'CloudQueue' could be found (are you missing a using directive or an assembly reference?)
2020-02-05T07:40:16.821 [Error] run.csx(52,19): error CS1061: 'CloudQueue' does not contain a definition for 'AddMessage' and no accessible extension method 'AddMessage' accepting a first argument of type 'CloudQueue' could be found (are you missing a using directive or an assembly reference?)
2020-02-05T07:40:16.918 [Error] Executed 'Functions.HttpTrigger1' (Failed, Id=36875311-6d8e-496a-989b-1ac16ce39f5a)
Script compilation failed.

Я не знаю, что я сделал неправильно, выполняя шаги, указанные в справочнике. Как я могу исправить эту ошибку и настроить функцию для получения уведомления о сайте SharePoint?

1 Ответ

0 голосов
/ 11 февраля 2020

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

Чтобы понизить версию среды выполнения до v1, вам нужно в браузер на Azure Функциональный портал -> Функции платформы -> Конфигурация

укажите FUNCTIONS_EXTENSION_VERSION на ~1 и удалите FUNCTIONS_WORKER_RUNTIME Настройки приложения.

Ссылка на c : https://docs.microsoft.com/en-us/azure/azure-functions/set-runtime-version

...