0

今天我开始使用运行 node.js 脚本的 Azure Web 作业,该脚本在同一目录中输出一个 json 文件。我现在想使用 http 使用该文件,但是我无法弄清楚正确的 uri 是什么。我认为它必须类似于日志所在的位置(顺便说一句,告诉我作业运行成功),但我似乎找不到 json 文件。不应该是这样的吗? https://SiteName.scm.azurewebsites.net/JobName/output.json

编辑:我刚刚使用 Webmatrix 打开了该站点,虽然我可以找到作业文件(在 /App_Data/jobs/triggered/JobName 下),但似乎没有保存 json 文件,尽管日志显示是这样。任何人都知道您是否可以将文件保存在这样的网络作业中?

fs.writeFile(outputFilename, JSON.stringify(output, null, 4), function(err) {
    if(err) {
        console.log(err);
    } else {
        console.log("JSON saved to " + outputFilename);
    }
});  

顺便提一句。如果要使用 Azure 提供静态 JSON,则必须编辑 Web.config:http: //blogs.msdn.com/b/africaapps/archive/2013/06/07/how-to-serve-static-json-文件-来自-a-windows-azure-website.aspx

4

1 回答 1

4

该文件不在 WebJob 的二进制文件旁边的原因是,在调用 WebJob 之前,它首先被复制到一个临时目录 ( %temp%\jobs\triggered\jobName\randomName) 并从那里运行,这样没有文件被锁定,您可以随时更新 WebJob 的二进制文件.

使用 WebJob 持久化文件时使用的适当路径是使用WEBROOT_PATH环境变量,因为它具有 wwwroot 的路径。

如果您希望此文件只能私下访问(因为 wwwroot 是公开可见的),您可以上一层,例如:%WEBROOT_PATH%/../output.json.

另一种选择是使用:d:\home,因为上下文 wwwroot 位于:d:\home\site\wwwroot

要访问该文件,请使用以下 URL:https ://SiteName.scm.azurewebsites.net/vfs/site/output.json ,您需要提供部署凭据。

于 2014-02-14T06:56:33.167 回答