当我尝试将文件保存到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).
答案 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
文件