NServiceBus 経由でメッセージを送信できません。Win7 x64で開発しているASP.Net MVC Webアプリがあり、web.configを次のように構成しました
<MsmqTransportConfig InputQueue="worker" ErrorQueue="error" NumberOfWorkerThreads="1" MaxRetries="5" />
<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="PricingInformation.Messages" Endpoint="worker2" />
</MessageEndpointMappings> </UnicastBusConfig>
application_start では、次のように配線します。
var bus = NServiceBus.Configure.WithWeb()
.StructureMapBuilder()
.XmlSerializer()
.MsmqTransport()
.IsTransactional(false)
.PurgeOnStartup(false)
.UnicastBus()
.ImpersonateSender(false)
.CreateBus()
.Start();
起動したアプリで興味のあるアクションが発生したとき
public override void HandleEvent(SupplierPricingUpdatedEvent updatedEvent)
{
bus.Send(new ModelSupplierDetailsUpdatedMessage() {Id = updatedEvent.Id})
return;
}
ModelSupplierDetailsUpdatedMessage は、インターフェイス マーカー IMessage を使用し、Serializable 属性で装飾された PricingInformation.Messages の単純なクラスです。
MSMQ キューはセットアップされており、トランザクションではなく、NETWORK SERVICE と IIS_IUSRS を含む全員が完全に制御できます (必死のトラブルシューティング手段で)。
log4net は次のことを示しています。
DEBUG NServiceBus.Utils.MsmqUtilities 14 - Checking if queue exists: worker.
DEBUG NServiceBus.Utils.MsmqUtilities 14 - キューが存在するかどうかを確認しています: エラー。DEBUG NServiceBus.Unicast.UnicastBus Worker.15 - NServiceBus.SagaPersisters.NHibernate.NHibernateMessageModule で 'HandleBeginMessage' を呼び出しています INFO NServiceBus.Unicast.UnicastBus Worker.15 - ワーカーが初期化されました。DEBUG NServiceBus.Unicast.UnicastBus Worker.15 - NServiceBus.SagaPersisters.NHibernate.NHibernateMessageModule で ' HandleEndMessage ' を呼び出しています DEBUG NServiceBus.Unicast.UnicastBus 9 -メッセージを送信していますニュートラル、PublicKeyToken=null、ID 2c642672-1bf1-48d4-a90f-734e2fdd726d\8267 を宛先 worker2 に送信します。
それでも、何を試しても、何を微調整しても (すでに 3 時間かかりました)、メッセージがキューに表示されることはありません。私は例外を見つけることができず、すべてにデバッグレベルのログを記録しています..おそらく何か簡単な助けがあります