我有一个Azure函数,我正在尝试将.xlsx文件保存到临时文件夹。我的代码在本地工作,但当我发布到Azure时,我收到一条错误消息。
string projectDirectory = Directory.GetParent(Environment.CurrentDirectory).Parent.Parent.FullName + @"\temp\";
string tempFilename = "abc.xlsx";
string pathTradeRecFile = Path.Combine(projectDirectory, tempFilename);
字符串
我的错误信息。<-拒绝访问路径“C:\Program Files(x86)\SiteExtensions\temp\abc.xlsx”。
有人能告诉我如何将此文件保存在某个地方吗?我在我的结构中创建了一个名为“temp”的文件夹作为一个可能的解决方案,但我似乎无法访问它。
如有任何帮助,将不胜感激!!
4条答案
按热度按时间55ooxyrt1#
请不要在Azure Functions中使用类似
Environment.CurrentDirectory
的东西(或者实际上,只是在任何地方)来获取临时文件夹。使用.NET-native方法来执行此操作:字符串
所以理想情况下使用这样的东西:
型
rnmwe5a22#
我很抱歉,但我没有得到你的意图保存文件在Azure存储文件系统?但是,如果azure函数允许在本地保存文件,那么您应该使用
Directory.GetCurrentDirectory();
,它将解析为D:\home\site\wwwroot
路径。首先,如果您需要将文件保存在本地,以便最终上传到
Azure Blob
等持久存储器,那么您不需要将文件保存在本地文件系统;你可以使用MemoryStream
,如下面的代码所示,在Azure blob
上传内容字符串
ctzwtxfj3#
Azure函数所看到的环境变量与整个OS环境变量不同。有关如何配置它们,请参阅此页:https://learn.microsoft.com/en-us/azure/azure-functions/functions-how-to-use-azure-function-app-settings?tabs=portal#settings。System.Environment.GetEnvironmentVariable(name)调用在Azure中运行时返回此值。在本地,该值来自local.settings.json文件:https://learn.microsoft.com/en-us/azure/azure-functions/functions-dotnet-class-library?tabs=v2%2Ccmd#environment-variables。
iugsix8n4#
在Python运行时的情况下,基本操作系统将是Linux,所以你可以像下面这样解决它:
字符串
Source Documentation