我参与了多层次的项目,这是消费从第三方系统“事件”流的一个组成部分。 供应商是通过Azure的服务总线主题发布这些 - 它们提供,控制和管理总线。 我们只是提供的URI,TopicName及认购细节。
我们的方法是把一个Webjob,使用所提供的ServiceBusTrigger
在SDK处理监听新消息和触发它们加工成我们的系统。 然而,我们似乎在那么多的纷纷创出路障作为作业不断失败,从主题阅读。 该作业失败,一个模糊的Timeout Exception
:
Unhandled Exception: System.TimeoutException: The timeout elapsed upon attempting to obtain a token while accessing 'https://****-sb.accesscontrol.windows.net/WRAPv0.9/'.
---> System.IdentityModel.Tokens.SecurityTokenException: The token provider was unable to provide a security token while accessing 'https://****-sb.accesscontrol.windows.net/WRAPv0.9/'.
Token provider returned message: 'The operation has timed out'.
但进一步下跌,跟踪包括:
[ERR] at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
[ERR] at Microsoft.ServiceBus.NamespaceManager.OnEndTopicExists(IAsyncResult result)
[ERR] at Microsoft.ServiceBus.NamespaceManager.EndTopicExists(IAsyncResult result)
供应商后来证实,只允许/要求认购对主题是Listen
任何人都可以确认哪些权限要求的ServiceBusTrigger
?
而作为一个+1,就假设它,无论出于何种原因,需要更多的Listen
(即需求Manage
),会有人想提出一种替代的方法呢? 这似乎是一个耻辱,失去WebJob基础设施建设(该项目已经有其他3个项目) - 从主题特别是像消息的异步和并行处理功能丧失