2017-06-06 76 views
0

我有一个用C#编写的.exe(控制台应用程序)文件,我想用Azure Data Factory运行该文件。在Azure Data Factory中运行.NET .exe

我需要做什么才能做到这一点?

我知道对于.dll文件,我们可以选择在azure中运行它们,但.exe文件又如何?

回答

1

你不能。不要试图把一个方形的钉子放在圆孔里。它将不得不被包装为ADF定制活动。

您需要从ADF基类继承并调用IDictionary的execute方法。

例如:

using System; 
using System.Collections.Generic; 
using System.Linq; 

using Microsoft.Azure; 
using Microsoft.Azure.Management.DataFactories.Models; 
using Microsoft.Azure.Management.DataFactories.Runtime; 

namespace ClassLibrary1 
{ 
    public class Class1 : IDotNetActivity 
    { 
     public IDictionary string, string Execute(
       IEnumerable linkedServices, 
       IEnumerable datasets, 
       Activity activity, 
       IActivityLogger logger) 
     { 
      logger.Write("Start"); 

      //Get extended properties 
      DotNetActivity dotNetActivityPipeline = (DotNetActivity)activity.TypeProperties; 

      string sliceStartString = dotNetActivityPipeline.ExtendedProperties["SliceStart"]; 

      //Get linked service details 
      Dataset inputDataset = datasets.Single(dataset = dataset.Name == activity.Inputs.Single().Name); 
      Dataset outputDataset = datasets.Single(dataset = dataset.Name == activity.Outputs.Single().Name); 

      /* 
       DO STUFF 
      */ 

      logger.Write("End"); 

      return new Dictionary string, string(); 
     } 
    } 
} 

来源:https://www.purplefrogsystems.com/paul/2016/11/creating-azure-data-factory-custom-activities/

您在控制台应用程序拥有的任何方法,只是它们改写为可通过Azure的批量服务的计算池来实例化一个类,这是在ADF通过了编译。

这是ADF如何做到的。

希望这会有所帮助。

+0

感谢重播我hinsight执行这个规定,但是它的faill – user3843858

0

正如Paul Andrew指出的那样,您需要使用定制活动SPI,如https://docs.microsoft.com/en-us/azure/data-factory/data-factory-use-custom-activities所述。你有三个选择:

+0

有趣的是,由于@Alexandre –

+0

感谢重播, – user3843858

+0

感谢重播,https://docs.microsoft.com/en -us/azure/data-factory/data-factory-use-custom-activities现在正在工作,当我将我的多维数据集处理代码与以下消息一起失败时,模块中出现未知错误:System.Reflection.TargetInvocationException:抛出异常调用的目标。 ---> Microsoft.AnalysisServices.ConnectionException:连接字符串无效。 ---> System.FormatException:输入字符串的格式不正确。在System.Number.StringToNumber(String str,NumberStyles选项 – user3843858