Как заставить FileTrigger работать с хранилищем файлов Azure в Webjob
У меня есть веб-задание, которое я настроил для запуска при добавлении файла в каталог:
[FileTrigger(@"<DIR>\<dir>\{name}", "*", WatcherChangeTypes.Created, autoDelete: true)] Stream file,
Я настроил это:
var config = new JobHostConfiguration
{
JobActivator = new NinjectActivator(kernel)
};
var filesConfig = new FilesConfiguration();
#if DEBUG
filesConfig.RootPath = @"C:\Temp\";
#endif
config.UseFiles(filesConfig);
config.UseCore();
Путь предназначен для локальной работы, и я ожидал, что комментирование объекта FilesConfiguration с оставлением его по умолчанию позволит ему выбрать строку подключения, которую я настроил, и сработать при добавлении файлов. Этого не происходит, оказывается, что по умолчанию RootPath установлен на "D:\Home" и создает исключение InvalidOperationException
System.InvalidOperationException : Path 'D:\home\data\<DIR>\<dir>' does not exist.
Как заставить триггер указывать на область хранения файлов той учетной записи хранения, которую я для нее настроил. Я попытался полностью удалить FilesConfiguration из Program.cs в надежде, что он будет работать против настроек, но он выдаст только то же исключение.
1 ответ
System.InvalidOperationException: путь 'D:\home\data\\' не существует.
При публикации в Azure каталог по умолчанию D:\HOME\DATA
, поэтому, когда вы запускаете webjob, он не может найти путь, поэтому вы получаете сообщение об ошибке.
Как заставить триггер указывать на область хранения файлов той учетной записи хранения, которую я для нее настроил.
Заданная строка подключения имеет два применения: одно используется для ведения журнала панели мониторинга, а другое - для функциональности приложения (очереди, таблицы, большие двоичные объекты).
Кажется, вы не можете заставить filetrigger работать с хранилищем файлов Azure. Так что, если вы хотите вызвать ваш filetrigger при создании нового файла, вы можете перейти к D:\home\data\
в КУДУ, чтобы создать DIR
папку, а затем создать новый файл.txt в нем.
Вывод как показано ниже:
Кстати, кажется, что вам лучше не использовать autoDelete
Когда вы создаете файл, если вы используете, вы получите ошибку, как:
NotSupportedException: Use of AutoDelete is not supported when using change type 'Changed'.