我正在使用 Nservicebus 4 的 RC2 和从以下位置下载的 PubSub 示例:http: //particular.net/articles/windows-azure-transport
我正在尝试进行基于代码的配置(而不是示例中显示的 azure csfg 文件)。这适用于早期版本的 NServiceBus,所以我不确定我在这里缺少什么。自定义配置未被拾取。这是一个错误吗?
这是我所做的应该重复问题的更改。
- 从 webrole 设置中删除了 nservicebus 配置
- 替换了自定义 IConfigurationSource 中的相同配置设置,并从总线引导代码中删除了 AzureConfigurationSource。
这是 Global.asax.cs 文件中更改后的引导代码:
var bus = Configure.With()
.DefaultBuilder()
.CustomConfigurationSource(new CustomConfig())
.MessageForwardingInCaseOfFault()
.AzureMessageQueue()
.QueuePerInstance()
.UnicastBus()
.CreateBus()
.Start();
这是 CustomConfig 类:
internal class CustomConfig : IConfigurationSource
{
public T GetConfiguration<T>() where T : class, new()
{
// the part you are overriding
if (typeof(T) == typeof(AzureQueueConfig))
return new AzureQueueConfig { ConnectionString = "storage key here", QueueName = "orderwebsiteinputqueue" } as T;
if (typeof(T) == typeof(MessageForwardingInCaseOfFaultConfig))
return new MessageForwardingInCaseOfFaultConfig { ErrorQueue = "errorqueue"} as T;
if (typeof(T) == typeof(TransportConfig))
return new TransportConfig() { MaxRetries = 5, MaximumConcurrencyLevel = 1} as T;
// leaving the rest of the configuration as is:
return ConfigurationManager.GetSection(typeof(T).Name) as T;
}
}