Configuration 本地NServicebus发布到Azure队列
我们有一个使用NServicebus的内部部署web应用程序,我们希望将队列移动到azure(作为完全基于云的更大迁移路径的一部分)。我正在尝试建立POC,但似乎无法使其工作。Configuration 本地NServicebus发布到Azure队列,configuration,azure,nservicebus,Configuration,Azure,Nservicebus,我们有一个使用NServicebus的内部部署web应用程序,我们希望将队列移动到azure(作为完全基于云的更大迁移路径的一部分)。我正在尝试建立POC,但似乎无法使其工作。 我有以下配置: <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.10.0, Culture=neutra
我有以下配置:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" />
<section name="AzureQueueConfig" type="NServiceBus.Config.AzureQueueConfig, NServiceBus.Azure"/>
<section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core"/>
<section name="MessageForwardingInCaseOfFaultConfig" type="NServiceBus.Config.MessageForwardingInCaseOfFaultConfig, NServiceBus.Core"/>
</configSections>
<MessageForwardingInCaseOfFaultConfig ErrorQueue="error" />
<AzureQueueConfig QueueName="timeoutmanager"
ConnectionString="DefaultEndpointsProtocol=https;AccountName=<My storage account>;AccountKey=<My primary access key>"/>
<UnicastBusConfig TimeoutManagerAddress="timeoutmanager">
<MessageEndpointMappings>
<add Messages="TechFu.Services.Bus.Messages.Publishing.CMS.SitePagePublishMessage, TechFu.Services.Bus.Messages" Endpoint="sitepagepublish" />
</MessageEndpointMappings>
当我尝试发布到队列时,我收到以下消息:
我有点不知所措,我尝试了在网上找到的几种不同的示例,但我觉得我对azure知识的缺乏阻碍了我的发展。我从这个问题中提取了大部分配置:我缺少了什么魔法吗?能否尝试从配置文件中删除对MsmqTransportConfig的任何引用?(使用Azure队列时,您实际上是在替换MSMQ传输)能否尝试从配置文件中删除对MsmqTransportConfig的任何引用?(使用Azure队列时,实际上是在替换MSMQ传输)我不熟悉NServicebus。但WindowsAzure有一个内置的服务总线,它可以自然地与队列集成。有关教程,请参阅 致以最良好的祝愿
徐明。我不熟悉NServicebus。但WindowsAzure有一个内置的服务总线,它可以自然地与队列集成。有关教程,请参阅 致以最良好的祝愿
徐明。目标队列是否存在?默认情况下,NServiceBus只创建源队列,因此如果目标不存在,它将不会为您创建源队列。目标队列是否存在?默认情况下,NServiceBus只创建源队列,因此如果目标不存在,它将不会为您创建源队列。我认为这不起作用,因为订阅消息无法在两台主机之间交换
更好地使用NServiceBus的网关概念,它将在不同的站点上分发消息。我认为这不起作用,因为订阅消息无法在两台主机之间交换
更好地使用NServiceBus的网关概念,它将在不同的站点上分发消息。没有区别,但我将更新问题,以反映使用MessageForwardingCaseofFaultConfig而不是MSMQTransportConfig没有区别,但我会更新这个问题,以反映使用MessageForwardingCaseofFaultConfig而不是MSMQTransportConfig在未来我们可能会走这条路线,但我们有一个使用内部NSB总线的整个基础设施,我们现在不能放弃。仅供参考。。。NServiceBus同时提供azure存储队列支持和开箱即用的服务总线队列支持……我很高兴使用服务总线队列;我只是在处理过程中没有看到任何代码示例或文档。我在什么地方遗漏了一份好的推荐信吗?我想在现场主持NSB进程,看起来所有的样本都是面向工作进程的。未来我们可能会走这条路线,但我们有一个使用内部NSB总线的整个基础设施,我们现在不能放弃。仅供参考。。。NServiceBus同时提供azure存储队列支持和开箱即用的服务总线队列支持……我很高兴使用服务总线队列;我只是在处理过程中没有看到任何代码示例或文档。我在什么地方遗漏了一份好的推荐信吗?我想在现场主持NSB进程,看起来所有的样本都是面向工作进程的。是的,我太傻了。在我向一位朋友展示了你的评论后,他向我展示了Azure Storage Explorer,这一切都很有意义。azure管理面板是一个多么不直观的界面啊-FTP会更友好…是的,你需要这样的工具来管理你的帐户。对于servicebus队列,这样更好一些,您可以在门户中创建这些队列(但不能查看它们内部)。是的,我真是太笨了。在我向一位朋友展示了你的评论后,他向我展示了Azure Storage Explorer,这一切都很有意义。azure管理面板是一个多么不直观的界面啊-FTP会更友好…是的,你需要这样的工具来管理你的帐户。对于servicebus队列更好一些,您可以在门户中创建这些队列(但不能查看它们内部)
Configure.WithWeb()
.StructureMapBuilder()
.InMemorySubscriptionStorage()
.AzureMessageQueue()
.JsonSerializer()
.UnicastBus()
.LoadMessageHandlers()
.IsTransactional(true)
.CreateBus()
.Start();
The destination queue 'sitepagepublish@ DefaultEndpointsProtocol=https;AccountName=<My storage account>;AccountKey=<My primary access key>’ could not be found. You may have misconfigured the destination for this kind of message (TechFu.Services.Bus.Messages.Publishing.CMS.SitePagePublishMessage) in the MessageEndpointMappings of the UnicastBusConfig section in your configuration file. It may also be the case that the given queue just hasn't been created yet, or has been deleted.