在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");
在本地运行时,它运行正常。
有没有办法让这个静态文件适当删除?
答案 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 \,其中包含您的内容文件和文件夹。