Как заставить 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'.

Другие вопросы по тегам