如何使FileTrigger与Webjob中的Azure文件存储一起使用

时间:2018-07-10 07:28:45

标签: azure azure-webjobs azure-webjobssdk azure-webjobs-triggered

我有一个Webjob,我将其设置为在将文件添加到目录时触发:

company_competition

我已经配置好了

[FileTrigger(@"<DIR>\<dir>\{name}", "*", WatcherChangeTypes.Created, autoDelete: true)] Stream file,

该路径用于本地工作,我期望注释掉FilesConfiguration对象(将其保留为默认值)将允许它拾取我设置的连接字符串,并在添加文件时触发。事实并非如此,事实证明默认情况下RootPath设置为“ D:\ Home”并产生InvalidOperationException

var config = new JobHostConfiguration
                {
                    JobActivator = new NinjectActivator(kernel)
                };
                var filesConfig = new FilesConfiguration();
#if DEBUG
                filesConfig.RootPath = @"C:\Temp\";
#endif
                config.UseFiles(filesConfig);
                config.UseCore();

如何使触发器指向已为此设置的存储帐户的文件存储区域。我曾尝试从Program.cs中完全删除FilesConfiguration,希望它能与设置兼容,但只会产生相同的Exception。

1 个答案:

答案 0 :(得分:0)

  

System.InvalidOperationException:路径'D:\ home \ data \\'不存在。

发布到天蓝色时,default directoryD:\HOME\DATA,因此,当您运行webjob时,找不到路径,因此您会收到错误消息。

  

如何使触发器指向我为此设置的存储帐户的文件存储区域。

您设置的连接字符串有两个适用范围:一个用于仪表板日志记录,另一个用于应用程序功能(队列,表,blob)。

您似乎无法使用Azure的文件存储功能来进行文件触发。 因此,如果要在创建新文件时调用文件触发,则可以转到 KUDU 中的D:\home\data\创建一个DIR文件夹,然后在其中创建新的.txt文件它。

输出如下:

enter image description here

顺便说一句,似乎最好不要在创建文件时使用autoDelete,如果使用,则会出现类似以下错误:

NotSupportedException: Use of AutoDelete is not supported when using change type 'Changed'.