我有一个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。
答案 0 :(得分:0)
System.InvalidOperationException:路径'D:\ home \ data \\'不存在。
发布到天蓝色时,default directory是D:\HOME\DATA
,因此,当您运行webjob时,找不到路径,因此您会收到错误消息。
如何使触发器指向我为此设置的存储帐户的文件存储区域。
您设置的连接字符串有两个适用范围:一个用于仪表板日志记录,另一个用于应用程序功能(队列,表,blob)。
您似乎无法使用Azure的文件存储功能来进行文件触发。
因此,如果要在创建新文件时调用文件触发,则可以转到 KUDU 中的D:\home\data\
创建一个DIR
文件夹,然后在其中创建新的.txt文件它。
输出如下:
顺便说一句,似乎最好不要在创建文件时使用autoDelete
,如果使用,则会出现类似以下错误:
NotSupportedException: Use of AutoDelete is not supported when using change type 'Changed'.