【发布时间】:2021-12-27 03:18:47
【问题描述】:
我正在尝试从 Azure 函数的共享文件中读取文件。 在本地一切正常,但是当我部署我的测试项目时出现“connectionString”错误。代码很简单:
string connectionString = Environment.GetEnvironmentVariable("MyStorage", EnvironmentVariableTarget.Process);
string FileSharedContainer = Environment.GetEnvironmentVariable("MySharedContainer", EnvironmentVariableTarget.Process);
string InputCloudFolder = Environment.GetEnvironmentVariable("InputCloudFolder", EnvironmentVariableTarget.Process);
string ProcessedCloudFolder = Environment.GetEnvironmentVariable("ProcessedCloudFolder", EnvironmentVariableTarget.Process);
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(connectionString);
CloudFileClient cloudFileClient = cloudStorageAccount.CreateCloudFileClient();
CloudFileShare cloudFileShare = cloudFileClient.GetShareReference(FileSharedContainer);
CloudFileDirectory rootDirectory = cloudFileShare.GetRootDirectoryReference();
CloudFileDirectory InputfileDirectory = rootDirectory.GetDirectoryReference(InputCloudFolder);
CloudFileDirectory ProcessedfileDirectory = rootDirectory.GetDirectoryReference(ProcessedCloudFolder);
List<IListFileItem> fileList = GetAllFilesFromDirectory(InputfileDirectory);
string fileNames = "";
foreach (var p in fileList)
{
var CurrentFile = (CloudFile)p;
fileNames += CurrentFile.Name +" ";
}
return new OkObjectResult("N. File processed is: " + fileList.Count + ". Filenames" + fileNames);
这是一个演示 http 触发函数,即使在 Azure 上也可以从共享文件夹返回文件列表。 它在本地机器上运行良好,但在部署环境中失败并出现此错误:
值不能为空。 (参数'connectionString')
请帮帮我....!
【问题讨论】:
-
您在App配置中添加了MyStorage连接字符串吗? docs.microsoft.com/en-us/azure/azure-functions/…。你能放一个调试打印语句来检查你的代码是否真的在检索那个值吗?以及您使用 SDK 的 V11 旧版的任何具体原因?新的 V12 版本见nuget.org/packages/Azure.Storage.Files.Shares。
标签: azure azure-functions azure-blob-storage