可以浏览Azure App Service临时目录吗?

时间:2018-08-25 01:52:22

标签: azure azure-web-sites azure-web-app-service kudu

我正在使用Kudu Dashboard浏览我的Azure App Service文件夹。具体来说,我正在浏览D:\local\Temp\,因为据我所知,它应该是用来存储由我的Web应用程序创建的临时文件的文件夹。作为参考,下面是Kudu仪表板的屏幕截图:

enter image description here

从屏幕快照中可以看到有一个名为xyz.tmp的文件,该文件是我通过Kudu仪表板手动创建的文件。

但是,当我尝试使用以下代码从Web应用程序读取文件时,所有这些都很好:

var fileContent = System.IO.File.ReadAllText(@"D:\local\Temp\xyz.tmp");

我收到一条错误消息,指出找不到该文件。

所以我的问题是,怎么回事?为什么会出现错误?另外,我注意到当我使用以下代码在同一App Service临时控制器中创建文件时:

var fn = System.IO.Path.GetTempFileName();
System.IO.File.WriteAllText(fn, "abc123");

然后我尝试使用Kudo仪表板浏览文件,但在temp目录中看不到它。

因此,从本质上讲,这似乎都指向Kudo仪表板显示的temp文件夹,并不代表App Service使用的实际temp文件夹。因此,如果不是这种情况,那么您应该如何浏览App Service临时文件夹?

谢谢。

1 个答案:

答案 0 :(得分:3)

来自https://github.com/projectkudu/kudu/wiki/Understanding-the-Azure-App-Service-file-system

  

另一个重要的注意事项是Main站点和scm站点不共享临时文件。因此,如果您从站点在那里写一些文件,则不会从Kudu Console中看到它们(反之亦然)。如果禁用分隔(通过type Omit<T, K> = Pick<T, Exclude<keyof T, K>>; function cannedQuery<TData, TVariables>(query: DocumentNode) { return (props: Omit<QueryProps<TData, TVariables>, "query">) => <Query query={query} {...props}/>; } const MyQuery = cannedQuery<TData, TVariables>(gql`...`); ),则可以使它们使用相同的临时空间。但是请注意,这是一个旧式标志,不建议/不支持使用它。