NServiceBus を使い始めたばかりで、コードで MsmqTransport を構成するときに何が欠けているのかわかりません。パブリッシャーを次のように構成すると、
IBus bus = Configure.With()
.CastleWindsorBuilder()
.XmlSerializer()
.MsmqSubscriptionStorage()
.MsmqTransport()
.IsTransactional(true)
.PurgeOnStartup(false)
.UnicastBus()
.ImpersonateSender(false)
.CreateBus()
.Start();
bus.Publish(new Message(DateTime.Now));
そして app.config はそのように
<configSections>
<section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core" />
</configSections>
<MsmqTransportConfig
InputQueue="testapps_messagebus"
ErrorQueue="testapps_errors"
NumberOfWorkerThreads="1"
MaxRetries="5" />
その後、すべて正常に動作します-キューが作成され、喜んでメッセージを送信できますが、キューを削除してから、次のようなコードで再試行すると;
var config = Configure.With()
.CastleWindsorBuilder()
.XmlSerializer()
.UnicastBus()
.ImpersonateSender(false)
.MsmqSubscriptionStorage();
config
.Configurer
.ConfigureComponent<MsmqTransport>(NServiceBus.ObjectBuilder.ComponentCallModelEnum.None)
.ConfigureProperty(x => x.InputQueue, "testapps_messagebus")
.ConfigureProperty(x => x.NumberOfWorkerThreads, 1)
.ConfigureProperty(x => x.ErrorQueue, "testapps_errors")
.ConfigureProperty(x => x.MaxRetries, 5);
IBus bus = config
.CreateBus()
.Start();
bus.Publish(new Message(DateTime.Now));
メッセージはどのキューにも表示されず、処理されないため、失われているようです。何かが足りないと思いますが、どこにあるのかわかりません。