Azure功能临时存储

时间:2017-09-19 07:45:42

标签: azure azure-web-sites azure-functions

当我尝试将文件保存到Azure Functions目录(D:\home\data\temp\response.pdf)中的Temp存储时,出现以下错误。为什么我不能写这个目录?

mscorlib: Exception has been thrown by the target of an invocation. System: An exception occurred during a WebClient request. mscorlib: ***Could not find a part of the path 'D:\home\data\temp\response.pdf'.***
2017-09-19T07:05:24.353 Function completed (Failure, Id=3aa4b740-ba8a-465c-ad7c-75b38fa2a472, Duration=334ms)
2017-09-19T07:06:31  No new trace in the past 1 min(s).

3 个答案:

答案 0 :(得分:7)

我建议使用System.IO.Path.GetTempPath(),因为这将始终为您提供任何给定系统的有效路径。

此外,对于给定实例,函数可以同时执行多次,因此最好确保每次执行都有唯一的路径。这是一个简单的例子:

var tempPath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());

答案 1 :(得分:4)

根据例外情况,您的函数项目中似乎不存在D:\home\data\temp\。请尝试使用Azure Kudu工具(https://yourwebsiteName.scm.azurewebsites.net)进行检查。如果路径不存在,请尝试添加临时文件夹,然后重试。

我们可以从Azure Web App sandbox获取有关Azure WebApp的更多信息。有关天蓝色文件结构的更多详细信息,请参阅此document

答案 2 :(得分:2)

我找到了更好的选择。您可以使用System.IO.Path.GetTempFileName()创建一个%userprofile%\Local\Temp\tmpE128.tmp文件