使用静态内容文件部署 WebJob

Deploying a WebJob with a static Content file

Azure 上的 WebJob 运行 似乎没有将 文件(如果较新则复制)放到正确的目录中。

我收到以下错误:

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");

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

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

进行一些测试后,惯例是将 /bin/Release 文件夹浅拷贝到 App_Data/jobs/continuous/LongTasks/

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

我知道这与 Azure WebJobs SDK 不完全相关,但这发生在 6/22/2015 版本 1.0.0。

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

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

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

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