我正在使用Kudu Dashboard浏览我的Azure App Service文件夹。具体来说,我正在浏览D:\local\Temp\
,因为据我所知,它应该是用来存储由我的Web应用程序创建的临时文件的文件夹。作为参考,下面是Kudu仪表板的屏幕截图:
从屏幕快照中可以看到有一个名为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临时文件夹?
谢谢。
答案 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`...`);
),则可以使它们使用相同的临时空间。但是请注意,这是一个旧式标志,不建议/不支持使用它。