c# - 缺少 ServiceBusConnectionString 时出现 FunctionIndexingException

标签 c# azure-webjobs azure-webjobssdk

我创建了以下程序:

using System;
using Microsoft.Azure.WebJobs;

namespace StayUpdated.Cpe.PypyFilter
{
    public class Program
    {
        public static void Main()
        {
            var jobHost = new JobHost();
            jobHost.RunAndBlock();
        }

        public static void ProcessQueue([ServiceBusTrigger("start")] String input)
        {
        }
    }
}

在 app.config 中,我添加了以下连接字符串:

<add name="AzureWebJobsDashboard" connectionString="DefaultEndpointsProtocol=https;AccountName=cpepypywebjobstorage;AccountKey=2iCufOrnXeY/B/VJptegGXaAbEmoj1SOgiiAbunk1kDAPqhkgvcOj3NEVGqtm0363GHu/h6Fy8JfoWEpKCP2Rw==" />
<add name="AzureWebJobsStorage" connectionString="DefaultEndpointsProtocol=https;AccountName=cpepypywebjobstorage;AccountKey=2iCufOrnXeY/B/VJptegGXaAbEmoj1SOgiiAbunk1kDAPqhkgvcOj3NEVGqtm0363GHu/h6Fy8JfoWEpKCP2Rw==" />

我得到一个 FunctionIndexingException 异常消息,Error indexing method 'ProcessQueue'

最佳答案

这是由于缺少 AzureWebJobsServiceBus 连接字符串造成的。您必须添加该连接字符串或通过 JobHostConfiguration 手动连接 ServiceBusConnectionString

您可以查看该异常的内部异常并看到它是一个带有消息的 ConfigurationErrorsException:

Configuration is missing required information. Make sure the property 'Endpoint' is defined as part of 'Microsoft.ServiceBus.ConnectionString' key within 'appSettings' section, or Windows Azure configuration settings.

不幸的是,按照异常消息中提供的说明进行操作是行不通的。

我认为原因是因为没有服务总线连接字符串,JobHost 不会加载它需要加载的任何内容以成功解析 ServiceBusTrigger 属性。

如果您收到的错误是沿着这样的方向,那就更好了

Attempted to setup a ServiceBusTrigger without a ServiceBusConnectionString.

更好的方法是只记录一个警告,说明存在永远不会被触发并继续的触发器。人们可能希望设置触发器但并不总是有服务总线连接字符串。

关于c# - 缺少 ServiceBusConnectionString 时出现 FunctionIndexingException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26570461/

相关文章:

azure - WebJobs SDK 在 AzureWebJobsDashboard 连接中创建的 blob 的清理机制是什么?

azure - azure 中的后台服务计划在预定时间运行

c# - 通过 TimerTrigger 在连续作业上使用 Azure WebJob 超时

c# - serilog 格式 SourceContext 仅显示程序集名称

c# - 如何限制用户关闭Winform c#

c# - 如何为长时间运行的 Azure 函数创建启动代码?

c# - Azure WebJobs 未找到函数

azure - WebJob QueueTrigger - 每个函数的限制

c# - 确保连接

c# - 带有鉴别器问题的 MongoDB 反序列化