我在 Visual Studio 2015 中创建了一个 Azure Function App。该应用程序具有服务总线队列的触发器。当我在本地运行该应用程序时,它运行得很好。它能够从服务总线队列(通过名为 AzureSBConnection 的变量配置)读取数据并将其记录在我的数据库中。
但在 Azure 中部署时出现以下错误:
函数($ServiceBusQueueTriggerFunction)错误:Microsoft.Azure.WebJobs.Host:索引方法“Functions.ServiceBusQueueTriggerFunction”出错。 Microsoft.Azure.WebJobs.ServiceBus:Microsoft Azure WebJobs SDK ServiceBus 连接字符串“AzureWebJobsAzureSBConnection”丢失或为空。
请注意,我的连接称为 AzureSBConnection,而不是 AzureWebJobsAzureSBConnection。此外,该连接在本地工作。最后,部署的文件看起来与本地文件完全相同。
Visual Studio 的结构如下所示:
function.json 文件有一堆设置,如下所示:
然后在 Appsettings.json 文件中,我有以下内容:
为了进行部署,我将文件通过 FTP 传输到 Azure 中 Function App 的 D:\home\site\wwwroot 位置。 Kudu 中的最终结构如下所示:
如果我进入我的函数文件夹:
这是部署的 function.json:
这是部署的应用程序设置:
部署的json文件与本地文件完全相同。但由于缺少 AzureWebJobsAzureSBConnection,部署的版本出现错误。我究竟做错了什么?
Only 环境变量支持应用程序设置和连接字符串。
您需要确保环境变量AzureWebJobsAzureSBConnection
在门户中的 Function 应用程序设置中进行设置:
然后在那里,你需要添加AzureWebJobsAzureSBConnection
具有正确连接字符串的变量:
然后您可以通过代码访问它:
Environment.GetEnvironmentVariable(name, EnvironmentVariableTarget.Process);
这将从 appsettings.json 或环境变量中获取值,具体取决于函数的执行位置(本地调试或部署在 Azure 上)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)