为什么azure数据工厂中的自定义.net活动永远不会完成

时间:2017-01-06 14:54:58

标签: azure azure-data-factory custom-activity

我已经学过几个教程,实际上还有其他活动在azure数据工厂中运行。现在,这个特别是不执行任何操作,但它永远不会完成处理。在活动窗口中,尝试显示状态:正在运行(0%完成)

我正在寻找一个理由,并且在理解如何知道此阶段活动的进展情况。有没有办法调试这个东西?我将包含源代码,我确信有可能我遗漏了一些东西:

   public class MoveBlobsToSQLActivity : IDotNetActivity
{
    public IDictionary<string, string> Execute(
               IEnumerable<LinkedService> linkedServices, IEnumerable<Dataset> 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>();
    }
}

更新1:

找到this post并按照github repo上的说明操作后,我就可以调试我的活动了。

这是错误的Dataset inputDataset = datasets.Single(dataset => dataset.Name == activity.Inputs.Single().Name);我希望它完成执行时出错,但是在调试器中,它会继续运行,直到管道超时为止。奇怪的。 删除了错误但仍然管道永远不会完成虽然调试器现在做了:(。

更新2:

不确定数据工厂是否以任何方式使用自定义活动中的代码。我做了更改:没有,我用代码删除了zip文件:没有,只是说活动正在运行。即使所谓的代码不再存在,似乎没有任何改变。我假设它被缓存在某个地方。

1 个答案:

答案 0 :(得分:0)

你能和我分享一下ADF runId,我们可以看看那里发生了什么。 对于你的本地测试(#1),对我来说也很奇怪。它不应该挂在那里。 顺便说一句,我认为重新部署管道将取消运行并使用新属性启动新运行。 :)