c# - NServiceBus 消息从队列中删除,没有踪迹

标签 c# azure nservicebus

我为 azure 辅助角色创建了一个新的 NServiceBus。

配置很简单:

NServiceBus.Configure.With(busAssemblies)
                        .Log4Net()
                        .License(Config.Default.NServiceBus_License)
                        .DefineEndpointName(endPointName) 
                        .UnityBuilder(serviceBusDiConfiguration.Container)
                        .AzureConfigurationSource()
                        .AzureSagaPersister()
                        .AzureSubcriptionStorage()
                        .AzureDataBus()
                        .JsonSerializer()
                        .AzureServiceBusMessageQueue()
                        .UnicastBus()
                        .LoadMessageHandlers()
                        .CreateBus()
                        .Start()

除了添加对 .DoNotAutoSubscribe() 的调用之外,客户端配置与上述相同。然后,客户端使用 Bus.Send(message) 发送到监听器的输入队列。

Azure 总线队列报告消息被发送到输入队列并相应删除(监听器正在运行 - 而不是其他情况)。所以是的 - 消息正在从队列中删除。但是,我的处理程序没有被触发,并且事件查看器或控制台中没有错误消息(使用开发结构时)。

enter image description here

唯一的错误,我什至不认为它是相关的,因为它在消息从队列中删除时没有被记录 - 而是在启动时记录它,但错误如下:

[MonAgentHost] Error: MA EVENT: 2013-05-12T22:52:54.925Z
[MonAgentHost] Error:     2
[MonAgentHost] Error:     12084
[MonAgentHost] Error:     6180
[MonAgentHost] Error:     NetTransport
[MonAgentHost] Error:     0
[MonAgentHost] Error:     880e569e-d37b-4262-bdae-dbe5133
[MonAgentHost] Error:     netutils.cpp
[MonAgentHost] Error:     OpenHttpSession
[MonAgentHost] Error:     749
[MonAgentHost] Error:     0
[MonAgentHost] Error:     2f94
[MonAgentHost] Error:     
[MonAgentHost] Error:     WinHttpGetProxyForUrl(http://127.0.0.1) failed ERROR_WINHTTP_AUTODETECTION_FAILED (12180)

这让我发疯。我不敢相信有人真的将 API 设计得如此复杂和不透明 - 相比之下,这使得 Windows Complication Foundation 显得微不足道。请帮我弄清楚出了什么问题,任何提示都会受到赞赏,例如。在此文件/文件夹中查找错误日志也可以!

谢谢!

最佳答案

我最近遇到了同样的问题,当您在本地定义自己的端点名称和主机(不在 Azure 辅助角色中)时,AzureServiceBus 传输存在问题,它不起作用。 Yves 最近修复了我的问题,但我使用了一种解决方法,在 Azure ServiceBus 传输的 app.config 部分中指定完整端点名称(包括服务 URL)。

  <configSections>
<section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" />
<section name="AzureServiceBusQueueConfig" type="NServiceBus.Config.AzureServiceBusQueueConfig, NServiceBus.Azure" />
<section name="MessageForwardingInCaseOfFaultConfig" type="NServiceBus.Config.MessageForwardingInCaseOfFaultConfig, NServiceBus.Core" />
<section name="Logging" type="NServiceBus.Config.Logging, NServiceBus.Core" />
  </configSections>

 <AzureServiceBusQueueConfig QueueName="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3b56425e555f4b5452554f7b5642555a565e484b5a585e15485e494d52585e594e48154c52555f544c4815555e4f" rel="noreferrer noopener nofollow">[email protected]</a>" ConnectionString="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedSecretIssuer=owner;SharedSecretValue=mysecret" />

关于c# - NServiceBus 消息从队列中删除,没有踪迹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16512923/

相关文章:

c# - 将 linq 扩展到 sharepoint 以发布 HTML 字段

c# - c#的音频库

c# - 从二进制文件读取字符串,不同的编码

.net - RouteTable.Routes.MapHubs() 仅在 Windows Azure 模拟器中抛出 ArgumentNullException。为什么?

azure - 如何主动处理 Azure 服务总线队列消息

c# - C# 中的文字字符

sql-server-2008 - SQL Azure 作为链接服务器 -> 获取插入行的标识

azure - 通过 CLI 使用选项在 Azure DevOps 中创建拉取请求

c# - "No parameterless constructor defined for this object."用于 Controller 中使用 StructureMap 的 IBus

iis - 导致 NServiceBus 丢失消息的原因