使用静态内容文件

时间:2015-06-22 22:36:22

标签: azure-webjobs

在Azure上运行的WebJob似乎没有删除< Content>文件(如果较新则复制)到正确的目录中。

我收到以下错误:

System.IO.DirectoryNotFoundException: Could not find a part of the path 'D:\local\Temp\jobs\continuous\LongTasks\lprysn1r.tsv\Content\File.cshtml

我尝试访问该文件: File.ReadAllText("Content/File.cshtml");

在本地运行时,它运行正常。

有没有办法让这个静态文件适当删除?

2 个答案:

答案 0 :(得分:1)

在做了一些测试后,惯例是他们对/ bin / Release文件夹执行浅层副本到App_Data / jobs / continuous / LongTasks /

这意味着,如果有任何文件夹,则不会复制它们。 将“File.cshtml”移动到根目录可以解决此问题。

我知道这与Azure WebJobs SDK没有完全相关,但是这种情况发生在2015年6月22日,版本为1.0.0。

答案 1 :(得分:0)

您应该使用 WEBJOBS_PATH 环境变量来运行当前的webjob。

var webjobPath = Environment.GetEnvironmentVariable("WEBJOBS_PATH");

if (string.IsNullOrWhiteSpace(webjobPath))
{
   // Handle dev environment
   webjobPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
}

这将返回一些路径,如D:\ local \ Temp \ jobs \ triggered \\ xxeeeexxx.qzx \,其中包含您的内容文件和文件夹。