azure - 如何让 FileTrigger 在 Webjob 中使用 Azure 文件存储
问题描述
我有一个设置为在将文件添加到目录时触发的网络作业:
[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.
如何让触发器指向我为其设置的存储帐户的文件存储区域。我已经尝试从 Program.cs 中完全删除 FilesConfiguration,希望它可以对设置起作用,但它只会产生相同的异常。
解决方案
System.InvalidOperationException:路径 'D:\home\data\\' 不存在。
当您发布到 azure 时,默认目录是D:\HOME\DATA
,因此当您运行 webjob 时,它找不到路径,因此您会收到错误消息。
如何让触发器指向我为其设置的存储帐户的文件存储区域。
您设置的连接字符串有两个应用:一个用于仪表板日志记录,另一个用于应用程序功能(队列、表、blob)。
您似乎无法让 filetrigger 与 azure file storage 一起使用。因此,如果您想在创建新文件时调用文件触发器,您可以D:\home\data\
在KUDU中创建一个DIR
文件夹,然后在其中创建新的 .txt 文件。
输出如下:
顺便说一句,似乎你最好不要autoDelete
在创建文件时使用,如果使用你会得到如下错误:
NotSupportedException: Use of AutoDelete is not supported when using change type 'Changed'.
推荐阅读
- node.js - 使用嵌套路径时刷新空白页
- python - 附加值时 NumPy 数组中的问题
- ruby-on-rails - 我有 3 个嵌套路由:class/post/comments,我不知道如何在 _form 文件中编写 form_for
- c# - 如何在 ASP.net Core 2.2 中为我的 CRUD Web 应用程序实现基本安全性?
- java - SQL 错误说我没有指定第三个参数
- asp.net-mvc - 我们可以用 ASP.NET Web API 替换 ASP.NET MVC
- java - 使用动作侦听器在文本字段中将双精度显示为整数
- amazon-web-services - 如何使用 AWS API Gateway 从 URL 中去除参数?
- python - 获取 Python 子进程中终端内执行的命令的进程 ID
- android - 同时动画父视图和子视图