- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个带有服务总线触发器的 Azure 函数:
public static async Task Run([ServiceBusTrigger(
"%inputTopicName%",
"%subscriptionName%",
AccessRights.Manage,
Connection = "connection")]string mySbMsg)
在 99.9% 的调用中,触发器成功解析为 Azure 服务总线上的订阅。但有时,我会在日志中看到以下错误:
Microsoft.Azure.WebJobs.Host.FunctionInvocationException: Exception while executing function: UptimeChecker ---> System.ArgumentException: The argument connectionString is null or white space.
Parameter name: connectionString
at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.FunctionInvocationFilterInvoker.d__9.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.d__24.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.d__23.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.d__22.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.d__16.MoveNext()
--- End of inner exception stack trace ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.d__16.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.d__13.MoveNext()
似乎服务总线触发器无法从设置中解析connection
变量。
我试图在我的函数中添加一个调试过滤器,以找出发生了什么:
public class DebuggingFilter : FunctionInvocationFilterAttribute
{
public override Task OnExecutingAsync(FunctionExecutingContext executingContext, CancellationToken cancellationToken)
{
executingContext.Properties.Add("connection", ConfigurationManager.AppSettings["connection"]);
executingContext.Properties.Add("inputTopicName", ConfigurationManager.AppSettings["inputTopicName"]);
executingContext.Properties.Add("subscriptionName", ConfigurationManager.AppSettings["subscriptionName"]);
return base.OnExecutingAsync(executingContext, cancellationToken);
}
}
当我的函数记录错误时,添加到 FunctionExecutionContext
的属性会自动添加到日志消息中。这里奇怪的是,在 Azure Functions 抛出此异常的情况下,属性值被解析并显示在日志消息中。
这可能是什么原因造成的?我在从 Azure Functions 解析设置时遇到过多个问题,所以这可能是一个普遍问题?
最佳答案
我对这个问题没有最终答案,但我确实想与遇到同样问题的其他人分享一些细节。该问题似乎仅限于基于 v1 消费的功能。将我的函数升级到 Azure Functions v2 并使用那里可用的新配置系统后,我不再遇到上述问题。由于 v1 不再是当前版本,当 v2 似乎可以正常工作时,我不想花更多时间对此进行调试。
关于c# - 连接字符串有时在 ServiceBusTrigger 中不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54644958/
我有一个带有部署槽的函数应用程序,用于开发测试(例如 azure/绿色) 其中一个函数设置为绑定(bind)到服务总线队列的 ServiceBusTrigger。 我不希望开发部署槽中的功能被服务总线
我的 Azure 函数项目中有 4 个配置文件,代表 4 个环境。 我有以下代码来根据 ASPNETCORE_ENVIRONMENT 红色特定于环境的文件 var executionC
需要使用我的 Azure Function 的服务总线触发器(主题)定义什么连接? 运行看起来像这样 public static void Run([ServiceBusTrigger("testto
遵循 best practices for reuse of Service Bus factories and clients ,建议复用ServiceBusReceiver。 This great
我正在开发微服务(使用 Azure Function Apps),其中包含基于 ServiceBusTrigger 的 Azure Functions,当消息插入服务总线队列时会触发服务总线队列。 我
根据documentation 、服务总线触发器提供了几个元数据属性。这些属性可以用作其他绑定(bind)中的绑定(bind)表达式的一部分或用作代码中的参数。这些属性是 Message 类的成员。示
我想将项目添加到服务总线主题,然后取消“实时”订阅并发送到实时站点,然后取消“开发”订阅并发送到开发站点。 [FunctionName("AddFoo")] public static async T
根据documentation 、服务总线触发器提供了几个元数据属性。这些属性可以用作其他绑定(bind)中的绑定(bind)表达式的一部分或用作代码中的参数。这些属性是 Message 类的成员。示
我想将项目添加到服务总线主题,然后取消“实时”订阅并发送到实时站点,然后取消“开发”订阅并发送到开发站点。 [FunctionName("AddFoo")] public static async T
我有一个 WebJob,它从事件主题读取消息,处理它们,然后创建关于不同主题的消息。 我可以使用服务总线触发器轻松实现这一点。 public void EventSubscriptionToNotif
我已安装 NuGet 包 Micorosft.Azure.WebJobs.ServiceBus,版本 1.0.1(2015 年 3 月 19 日)。我的 WebJob 被服务总线队列上的新消息完美触发
我有一个解析 ServiceBus 主题订阅的 WebJob。 现在我阅读了几个使用WebJob绑定(bind)机制使代码更简洁的示例。 https://github.com/Azure/azure-
我有一个带有服务总线触发器的 Azure 函数: public static async Task Run([ServiceBusTrigger( "%inputTopicName%",
嘿,我正在使用 ServiceBusTrigger azure 函数来获取队列中收到的消息,然后将它们发送到我的 webapi,该 webapi 将对该内容执行一些操作 [FunctionName("
嘿,我正在使用 ServiceBusTrigger azure 函数来获取队列中收到的消息,然后将它们发送到我的 webapi,该 webapi 将对该内容执行一些操作 [FunctionName("
为什么serviceBus会多次触发同一条消息?相同的触发器由服务总线上的相同消息执行: [FunctionName("ProcessOrderFromServiceBusQueue")]
C# .NET Core Azure Functions v2; Microsoft.Azure.ServiceBus 3.2.0、Microsoft.Azure.WebJobs 3.0.2、Micr
Azure WebJobs SDK 的 ServiceBusTrigger 的有害消息处理如何工作?我希望将已出列超过“x”次的服务总线队列消息推送到不同的 ServiceBus(或)存储队列 在线文
我一直在使用 Azure 存储队列通过 QueueTrigger 属性来提供 WebJob。我将 QueueTrigger 配置为将多个项目出队以进行并发处理,如下所示: public static
直到最近它才似乎随机损坏了。 按照指南操作here我之前已经让信号器和服务总线在本地工作得很好。 似乎在我不改变任何我所知道的情况下就以某种方式破坏了,我的 host.json 在其历史记录中没有差异
我是一名优秀的程序员,十分优秀!