So bekam ich meine Host-Handling-Nachrichten. Was es macht? Abrufen der Nachricht, die die E-Mail-Adresse, den Betreff und den Betreff enthält. und senden Sie die E-Mail mit SMTP.nservicebus host wird keine Nachrichten aus der Warteschlange entfernen
so in der Produktion, in einem unserer Clients, sehe ich 370 Nachrichten in der Warteschlange. Keine Nachrichten verlassen die Warteschlange. nur neue Nachrichten kommen rein.
Ich schaute auf das Protokoll. Was ist das ist das:
2016-04-28 17:35:10,243 [DAPROD01] [3] [] INFO : Failed to process message
System.Net.Mail.SmtpException: The operation has timed out.
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at EmailServiceHost.Utilities.EmailSender.Send(String recipient, String subject, String body) in e:\r-release\src\EmailServiceHost\Utilities\EmailSender.cs:line 24
at NServiceBus.Unicast.HandlerInvocationCache.Invoke(Object handler, Object message, Dictionary`2 dictionary) in :line 0
at NServiceBus.Pipeline.Behaviors.InvokeHandlersBehavior.DispatchMessageToHandlersBasedOnType(IBuilder builder, LogicalMessage toHandle, LoadedMessageHandlers loadedHandlers, BehaviorContext context) in :line 0
at NServiceBus.Pipeline.Behaviors.InvokeHandlersBehavior.Invoke(BehaviorContext context, Action next) in :line 0
at NServiceBus.Sagas.SagaPersistenceBehavior.Invoke(BehaviorContext context, Action next) in :line 0
at NServiceBus.Pipeline.Behaviors.LoadHandlersBehavior.Invoke(BehaviorContext context, Action next) in :line 0
at NServiceBus.Pipeline.Behaviors.CallbackInvocationBehavior.Invoke(BehaviorContext context, Action next) in :line 0
at NServiceBus.Pipeline.Behaviors.ApplyIncomingMessageMutatorsBehavior.Invoke(BehaviorContext context, Action next) in :line 0
at NServiceBus.Pipeline.Behaviors.ExtractLogicalMessagesBehavior.Invoke(BehaviorContext context, Action next) in :line 0
at NServiceBus.Pipeline.Behaviors.ApplyIncomingTransportMessageMutatorsBehavior.Invoke(BehaviorContext context, Action next) in :line 0
at NServiceBus.UnitOfWork.UnitOfWorkBehavior.Invoke(BehaviorContext context, Action next) in :line 0
2016-04-28 17:35:10,602 [DAPROD01] [48] [] ERROR: Message has failed FLR and will be moved to the configured error q, ID=ec40ebe5-90a5-4014-be42-a5f500877d2a.
2016-04-28 17:36:50,689 [DAPROD01] [48] [] INFO : Failed to process message
System.Transactions.TransactionAbortedException: The transaction has aborted.
at System.Transactions.TransactionStatePromotedAborted.BeginCommit(InternalTransaction tx, Boolean asyncCommit, AsyncCallback asyncCallback, Object asyncState)
at System.Transactions.CommittableTransaction.Commit()
at System.Transactions.TransactionScope.InternalDispose()
at System.Transactions.TransactionScope.Dispose()
at NServiceBus.Transports.Msmq.MsmqDequeueStrategy.Action() in :line 0
so Sie feststellen, dass der erste Fehler das Timeout des SMTP-Client enthält. die nächsten 200 Fehler sagen nur Fehler beim Verarbeiten der Nachricht.
Die Nachrichten werden nicht aus der privaten Warteschlange entfernt.
Werden die Nachrichten in die Fehlerwarteschlange verschoben oder bleiben sie in der Eingabewarteschlange? –
Ich bin mit Tom. Wenn Nachrichten weiterhin fehlschlagen, sollten sie in die Fehlerwarteschlange bij NServiceBus verschoben werden. Es ist möglich, dass sie abgeholt und wieder in die Warteschlange verschoben oder in die Warteschlange für Wiederholungen oder die Fehlerwarteschlange verschoben werden. Was sind Ihre Einstellungen bei Wiederholungen auf der ersten Ebene, Wiederholungen auf der zweiten Ebene und Fehler- und Prüfwarteschlangen? –
Sie kommen nicht in die Fehlerwarteschlange. Ich habe alle Standardeinstellungen (5 FLR und keine SLR). Die Nachrichten bleiben nur in der Warteschlange. – user3329192