问题标签 [azure-servicebus-topics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1103 浏览

azure - Azure 服务总线和长处理消息

在我的系统中 LockDuration = 5 分钟,AutoRenewTimeout = 20 分钟。处理某些消息需要超过 5 分钟(有时 5:15,有时超过 6:00)。对于这些消息,我有一个例外:

我在我们的日志中读到,系统开始处理一条消息(我们称之为 Process_A),它仍在进行中,5 分钟后,系统再次开始处理同一条消息(我们称之为 Process_B)。Process_A 完成并调用 Complete()。然后 Process_B 完成工作并调用 Complete()。它会导致异常,因为此消息已被编译。

我在文档中发现 LockDuration 的最大值是 5 分钟。为什么?超过 5 分钟的消息无法处理?或者可能配置错误?

0 投票
0 回答
485 浏览

azure - Azure 中继混合连接 - 多台服务器(一个前提)一个客户端

我想使用 Azure 中继混合连接构建服务。该服务将由客户下载并安装在他们的场所。服务本身基本上是一个服务器,它允许客户端连接到数据库并从数据库中获取数据。我在这里遵循这种情况:Azure 中继混合连接,当您有一个客户端和一个服务器时工作正常。我的场景是这样的(一个客户端和许多服务器):

在此处输入图像描述

如何构建动态服务器,使一个客户端可以连接到特定服务器并从数据库中获取数据?

我正在考虑在客户下载服务器时生成一些配置文件,服务器将从文件中读取设置,但我仍然如何连接到特定服务器?Azure 服务总线主题和订阅的工作方式类似。这可以使用中继混合连接来实现吗?

0 投票
1 回答
1194 浏览

c# - Azure 服务总线 MessageCountDetails.ActiveMessageCount 不正确

我构建了一个服务,每隔几分钟就轮询我们 ASB 上的队列和主题。该代码有一个设置类的初始化部分,以及在调用类的某些函数的 cron 作业上运行的部分。

我面临的问题是,在运行它时,我在每次预定执行时都得到相同的计数。一旦我停止服务并重新运行它,我就会得到更新的数字。

我的解决方案是在每次计划运行时重新初始化所有内容。现在的问题是我需要添加一些功能,这不是一个选项。

以下是我试图尽可能简化的代码(仅用于主题):

代码的初始化看起来像

每隔几分钟调用一次的代码是

警报类的简化

这是 SubscriptionDescription 类的预期行为吗?在刷新 SubscriptionDescription 或订阅方面,我在 MSDN 上找不到太多信息,这让我相信每次调用 MessageDetails.Count 时它都应该返回最新的数字。

我究竟做错了什么?

0 投票
3 回答
10322 浏览

c# - 如何从.net核心应用程序向服务总线主题发送消息

我使用 .net 核心应用程序创建了 API,该应用程序用于将一组属性发送到 SQL DB,并且还应将消息的一个副本发送到 azure 服务总线主题。截至目前 .net 核心不支持服务总线。请分享您的想法。如何使用 .net 核心应用程序将消息发送到服务总线主题?

0 投票
2 回答
880 浏览

c# - .NET 类库作为带有 ServiceBusTopic 触发器的 Azure 函数应用程序不起作用

我按照以下 URL 中的步骤在 Visual Studio 2017(不是 Azure 门户)中本地创建了一个 Azure 函数应用程序。

https://blogs.msdn.microsoft.com/appserviceteam/2017/03/16/publishing-a-net-class-library-as-a-function-app

我完全按照这些步骤创建了一个具有“ServiceBusTopicTrigger”的函数。我将以下内容添加到我的 function.json

我的 appenttings.json 有以下内容

当我在 Visual Studio 中运行该函数时,我不断收到一条错误消息“Microsoft.Azure.WebJobs.ServiceBus:Microsoft Azure WebJobs SDK ServiceBus 连接字符串'AzureWebJobsservicebusnac'丢失或为空。”</p>

只是为了它,我在值集合中添加了另一个条目,名称为“AzureWebJobsservicebusnac”,但仍然显示相同的消息。有什么我做错了吗?

另外,您如何对该功能进行单元测试?我无法访问单元测试项目中 csx 文件中的任何函数。

谢谢。

已编辑:我添加了信息以明确我是在 Visual Studio 而不是 Azure 门户中创建函数。

0 投票
1 回答
774 浏览

azure - 如何使用命令行在 Azure Servicebus 中自动添加/删除主题和订阅

我正在尝试编写简单的控制台应用程序,它可以从 Service Bus explorer 3.0.4 自动添加或删除任何 Azure 服务总线主题和订阅,但到目前为止还没有运气。

关于服务和消息传递的代码位于 C#/Visual Studio 2015 中,并且 pubsub 正在自动创建 Azure 令牌密钥。

非常感谢任何帮助。提前致谢。

0 投票
1 回答
481 浏览

.net - 创建和删除 Azure 服务总线主题订阅的最低权限?

我正在创建一个应用程序,该应用程序需要创建和删除对 Azure 服务总线中已创建主题的订阅。

我的共享访问令牌是否需要管理该主题的权限才能创建和删除订阅?我做了一些初步的谷歌搜索,我找不到的文章都没有显示三个角色(管理、发送、监听)与订阅实体的相关性。

谢谢!

更新 我直接在主题上创建了共享访问策略,然后我编写了以下代码来访问主题,创建订阅,然后通过 IDisposable 接口取消/处理它们:

但是,我仍然收到未经授权的异常

SubManager.CreateSubscription(SubDetails, new SqlFilter($"ID = {details.ID}")); 称呼。我从 SharedAccessPolicy 连接字符串中复制了连接字符串,然后删除了 EntityPath 名称值对......我做错了什么?

0 投票
1 回答
1659 浏览

c# - 在 Azure 服务总线中发布到一个主题并订阅另一个主题的集成测试不可靠是否存在竞争条件?

我正在尝试编写一个集成/验收测试来测试一些天蓝色的代码,问题 ATM 中的代码只是订阅一个主题并发布到另一个主题。

我已经编写了测试,但它并不总是通过,似乎可能存在竞争条件。我尝试用几种方法编写它,包括使用 OnMessage 和使用 Receive(我在这里展示的示例)。

使用 OnMessage 时,测试似乎总是过早退出(大约 30 秒),我想这可能意味着它不适合这个测试。

我的查询具体涉及我的示例,我假设一旦我创建了对目标主题的订阅,任何发送给它的消息我都可以使用 Receive() 来接收,无论消息到达的时间点意味着什么,如果消息到达在我调用 Receive() 之前的目标主题中,我仍然可以通过调用 Receive() 来阅读消息。任何人都可以对此有所了解吗?

0 投票
1 回答
457 浏览

javascript - 如何使用 javascript 在 azure functionapp 中使用 servicebus 主题会话

我有一个 Azure Functionapp,它处理一些数据并将该数据推送到 Azure 服务总线主题。

我需要在我的 servicebus 主题订阅上启用会话。使用 javascript functionapp API 时,我似乎找不到设置会话 ID 的方法。

这是我的函数应用程序的修改摘录:

但是 sessionId 似乎根本没有设置。关于如何实现这一点的任何想法?

死信错误

消息属性

0 投票
2 回答
2144 浏览

c# - Azure 服务总线主题订阅者接收订单

我正在使用 azure 服务总线主题作为我的解决方案的消息代理。根据我对每个订阅的理解,Azure 消息总线保留一个虚拟队列,因此在接收端消息的顺序不应受到干扰。

但实际上它有点不同,在我的场景中

  • 输入大概是每两秒之后,(时间戳是正确的我已经验证过了)
  • 如果我断开接收器一段时间,消息开始在 Azure 上针对订阅排队。
  • 然后如果我再次连接接收器,接收代码接收消息很快,但没有保持顺序?
  • 但是,如果我保持客户端连接,则按顺序接收消息(两秒后有 1 条消息)

接收代码

输出

任何人都可以解释为什么会这样吗?这对我来说有点混乱?