Frage

Ich habe Probleme eine Nachricht über NServiceBus senden. Ich habe einen Web-App ASP.Net MVC, auf Win7 x64 entwickeln, habe ich meine web.config als

konfigurierte
       <MsmqTransportConfig    InputQueue="worker"    ErrorQueue="error"    NumberOfWorkerThreads="1"    MaxRetries="5"   />

  <UnicastBusConfig>
    <MessageEndpointMappings>
      <add Messages="PricingInformation.Messages" Endpoint="worker2" />
    </MessageEndpointMappings>   </UnicastBusConfig>

In Application_Start I verdrahten die folgenden:

var bus = NServiceBus.Configure.WithWeb()
            .StructureMapBuilder()
            .XmlSerializer()
            .MsmqTransport()
                .IsTransactional(false)
                .PurgeOnStartup(false)
            .UnicastBus()
                .ImpersonateSender(false)
            .CreateBus()
            .Start();

Wenn die Aktion Ich bin interessiert geschieht in der App I Feuer

    public override void HandleEvent(SupplierPricingUpdatedEvent updatedEvent)
    {
        bus.Send(new ModelSupplierDetailsUpdatedMessage() {Id = updatedEvent.Id})
        return;
     }

ModelSupplierDetailsUpdatedMessage ist einfach Klasse in PricingInformation.Messages Schnittstelle Marker IMessage und dekoriert mit Serializable-Attribut.

Die MSMQ-Warteschlangen sind Setup, nicht Transaktions-, und alle, einschließlich NETWORK SERVICE und IIS_IUSRS haben die volle Kontrolle (in deseperate Maßnahmen zur Fehlerbehebung)

log4net zeigt die folgende:

DEBUG NServiceBus.Utils.MsmqUtilities  14 - Checking if queue exists: worker.

DEBUG NServiceBus.Utils.MsmqUtilities 14 - Überprüfen, ob Warteschlange vorhanden ist: Fehler. DEBUG NServiceBus.Unicast.UnicastBus Worker.15 - Aufruf 'HandleBeginMessage' auf NServiceBus.SagaPersisters.NHibernate.NHibernateMessageModule INFO NServiceBus.Unicast.UnicastBus Worker.15 - Arbeiter initialisiert. DEBUG NServiceBus.Unicast.UnicastBus Worker.15 - Aufruf 'HandleEndMessage' auf NServiceBus.SagaPersisters.NHibernate.NHibernateMessageModule DEBUG NServiceBus.Unicast.UnicastBus 9 - Senden Nachricht PricingInformation.Messages.ModelSupplierDetailsUpdatedMessage, PricingInformation.Messages, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null mit ID 2c642672-1bf1-48d4-a90f- 734e2fdd726d \ 8267 zum Ziel worker2.

Doch egal, was ich versuche, und was ich zwicken (been drei Stunden bereits) die Meldung erscheint nie in der Warteschlange. Ich kann nicht eine Ausnahme finden, und ich habe Debug-Level-Protokollierung auf alles .. Es ist wahrscheinlich einfach etwas Hilfe

War es hilfreich?

Lösung

Das Problem ist, dass, wenn Sie manuell Ihre Warteschlangen als Nicht-Transaktions einrichten, dann wird es nicht funktionieren. Einstellen des NServiceBus „IsTransactional“ Eigenschaft auf false bedeutet nicht, Sie mit Nicht-Transaktionswarteschlangen arbeiten können.

Bitte versuchen Sie die Warteschlangen zu löschen und sie als Transaktions- oder neu zu erstellen, wenn Sie die Beta-Version von v2.0 verwenden, nur lassen NServiceBus die Warteschlangen für Sie erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top