【发布时间】:2019-04-18 14:46:57
【问题描述】:
这是我第一次尝试创建 Azure App Function。在我的本地开发机器上运行时,我已经让它工作了。现在我已将它部署到 Azure 中,并将调试器附加到它(非常酷,顺便说一句!)。
在我的本地主机上运行时,我可以使用 local.settngs.json 文件进行所有应用设置。这很好用。但是在 Azure 中远程运行该功能时,我似乎在访问应用程序设置的简单过程中遇到了障碍。
首先(这是我稍后会打的一场战斗)我确信有一种方法可以根据 local.settngs.json 中的内容自动填充 Azure 函数中的设置,但现在,我都是手动添加的.
现在,让我们看一下设置StorageConnectionString的值是这样的:
DefaultEndpointsProtocol=https; AccountName=[redacted]; AccountKey=[redacted]; EndpointSuffix=core.windows.net
所有这三种获取值的尝试都在我的本地主机上工作,但在远程 Azure 函数中调试时,这三种尝试也都失败了:
string storageConString = ConfigurationManager.AppSettings["StorageConnectionString"];
string storageConString = CloudConfigurationManager.GetSetting("StorageConnectionString");
string storageConString = Environment.GetEnvironmentVariable("StorageConnectionString");
在所有情况下,我都会收到此错误:
错误信息:
值不能为空。参数名称:itemName
堆栈跟踪:
在 c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\Common\Core\Util\CommonUtility 中的 Microsoft.WindowsAzure.Storage.Core.Util.CommonUtility.AssertNotNullOrEmpty(String paramName, String value)。 c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\Common\File\CloudFileDirectory.Common.cs 中 Microsoft.WindowsAzure.Storage.File.CloudFileDirectory.GetDirectoryReference(String itemName) 的第 143 行:第 224 行在 XXXXXXX.Common.AzureFunctions.ProcessInbound.DoBooksExist(BookSource bookSource) 在 XXXXXXX.Common.AzureFunctions.ProcessInbound.Run(TimerInfo myTimer, TraceWriter 日志)
这个错误让我有点难过,因为它似乎并不适用。例如,为什么它调用GetDirectoryReference(String itemName)?
【问题讨论】:
标签: c# .net azure azure-functions