是否可以浏览 Azure 应用服务临时目录?

T55*_*555 6 azure kudu azure-web-app-service

我正在使用Kudu 仪表板浏览我的 Azure 应用服务的文件夹。具体来说,我正在浏览,D:\local\Temp\因为这应该是(据我所知)用于存储由我的网络应用程序创建的临时文件的文件夹。作为参考,以下是 Kudu 仪表板的屏幕截图:

在此处输入图片说明

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

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

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

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

所以我的问题是,发生了什么?为什么我收到错误?此外,我注意到当我使用以下代码在同一个应用服务临时目录中创建文件时:

var fn = System.IO.Path.GetTempFileName();
System.IO.File.WriteAllText(fn, "abc123");
Run Code Online (Sandbox Code Playgroud)

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

所以基本上,这一切似乎都指向 Kudo 仪表板显示的临时文件夹,而不是应用服务使用的真实临时文件夹。因此,如果情况并非如此,那么您究竟应该如何浏览应用服务临时文件夹?

谢谢。

Dav*_*bbo 7

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

另一个重要的注意事项是主站点和 scm 站点不共享临时文件。因此,如果您从站点写入一些文件,您将不会在 Kudu 控制台中看到它们(反之亦然)。如果禁用分离(通过WEBSITE_DISABLE_SCM_SEPARATION),则可以使它们使用相同的临时空间。但请注意,这是一个遗留标志,不推荐/不支持使用它。

  • 那么,除了使用 WEBSITE_DISABLE_SCM_SEPARATION 设置(我们不应该使用)之外,是否有官方且受支持的方法来查看网站临时文件夹? (2认同)
  • 没有,除了向您的应用程序本身添加逻辑以显示临时文件之外。另请注意,向外扩展时,每个实例都有自己的临时文件夹。 (2认同)