Не удается запустить фабрику данных Azure из функции Azure - PullRequest
0 голосов
/ 29 июня 2018

Это мой скрипт c # Azure Function:

#r "System.Runtime"
#r "System.Threading.Tasks"
using System;
using System.Net;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Microsoft.Azure;
using Microsoft.Azure.Management.DataFactory;
using Microsoft.Azure.Management.DataFactory.Models;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using Microsoft.Rest;

public static void Run(TimerInfo myTimer, TraceWriter log)
{
    log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
    /*...All variable definations...*/


var authenticationContext = new AuthenticationContext(activeDirectoryEndpoint + activeDirectoryTenantld);    
ClientCredential credential = new ClientCredential(clientld, clientSecret);    
AuthenticationResult result = authenticationContext.AcquireTokenAsync(windowsManagementUri, credential).Result; 
ServiceClientCredentials cred = new TokenCredentials(result.AccessToken);
var client = new DataFactoryManagementClient(cred) { SubscriptionId = subscriptionId };

Dictionary<string, object> arguments = new Dictionary<string, object>
            {
                { "bufferdays", 10 },
                {"TimeToCopy", 20 }
            };    
CreateRunResponse runResponse = client.Pipelines.CreateRunWithHttpMessagesAsync(resourceGroupName, dataFactoryName, pipelineName,arguments).Result.Body;

}

Это выдает ошибку run.csx (56,130): ошибка CS1503: Аргумент 4: невозможно преобразовать из 'System.Collections.Generic.Dictionary' в 'строку' , Но то же самое прекрасно работает в Visual Studio. Что здесь не так?

1 Ответ

0 голосов
/ 29 июня 2018

Понял.

I was using {
  "frameworks": {
    "net46":{
      "dependencies": {

        "Microsoft.Azure.Management.DataFactory": "0.8.0",

в project.json, поэтому он автоматически загружал версию 1.0.0. Мне пришлось принудительно загрузить версию 0.8.0, указав "Microsoft.Azure.Management.DataFactory": "0.8.0-preview", явно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...