gpt4 book ai didi

c# - 具有存储文件共享的 Azure WebJobs

转载 作者:行者123 更新时间:2023-11-30 18:19:17 26 4
gpt4 key购买 nike

如何使用 FileTrigger 获取我上传的文件?

配置代码:

public class Program
{
// Please set the following connection strings in app.config for this WebJob to run:
// AzureWebJobsDashboard and AzureWebJobsStorage
public static void Main()
{

JobHostConfiguration jobConfiguration = new JobHostConfiguration();
FilesConfiguration fileConfiguration = new FilesConfiguration();

jobConfiguration.UseFiles(fileConfiguration);
jobConfiguration.UseTimers();

var host = new JobHost(jobConfiguration);

// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}
}

以下代码在运行WebJob时出错

    public static void ProcessXml([FileTrigger(@"XML\{name}", "*.xml", autoDelete: true)] Stream file, string name, TextWriter log)
{
try
{
TextReader reader = new StreamReader(file);
ProcessFile(reader);
}
catch (Exception ex)
{
log.WriteLine(string.Format("Ao processar o arquivo '{0}', o seguinte erro ocorreu: {1}", name, ex.Message));
}
log.WriteLine(string.Format("Arquivo '{0}' processado!", name));
}

错误:

[08/31/2016 21:59:39 > 0d02fe: INFO] Found the following functions:
[08/31/2016 21:59:39 > 0d02fe: INFO] XXXX.jobs.Functions.ProcessXml
[08/31/2016 21:59:39 > 0d02fe: ERR ]
[08/31/2016 21:59:39 > 0d02fe: ERR ] Unhandled Exception: System.InvalidOperationException: Path 'D:\home\data\XML' does not exist.
[08/31/2016 21:59:39 > 0d02fe: ERR ] at Microsoft.Azure.WebJobs.Files.Listeners.FileListener.CreateFileWatcher()
[08/31/2016 21:59:39 > 0d02fe: ERR ] at Microsoft.Azure.WebJobs.Files.Listeners.FileListener.<StartAsync>d__6.MoveNext()

如何映射文件路径?我尝试使用网络路径作为RootPath,但是出现错误,指出文件路径无效。

非常感谢您的帮助。

最佳答案

可以看到异常抛出代码here:

if (!Directory.Exists(_watchPath))
{
throw new InvalidOperationException(string.Format("Path '{0}' does not exist.", _watchPath));
}

它要求该文件夹在作业主机启动之前存在。

一个快速的解决方法是在开始工作之前创建目录:

public class Program
{
// Please set the following connection strings in app.config for this WebJob to run:
// AzureWebJobsDashboard and AzureWebJobsStorage
public static void Main()
{

if(!System.IO.Directory.Exists(@"D:\home\data\XML"))
{
System.IO.Directory.Create(@"D:\home\data\XML");
}

JobHostConfiguration jobConfiguration = new JobHostConfiguration();
FilesConfiguration fileConfiguration = new FilesConfiguration();

jobConfiguration.UseFiles(fileConfiguration);
jobConfiguration.UseTimers();

var host = new JobHost(jobConfiguration);
host.RunAndBlock();
}

关于c# - 具有存储文件共享的 Azure WebJobs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39259917/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com