2011-01-03 11 views
1

Das ist mein Szenario:Wie Abonnements nach IISRESET erneuern?

  • Web-Anwendung mit einem selbst gehosteten Bus (Herausgeber)
  • Windows-Dienst mit NServiceBus.Host.exe (Teilnehmer)

Stellen Sie sich vor, dass Trigger ein IISRESET (egal, warum ich das tun muss), das macht den Bus neu initialisieren und verlieren die Abonnements, die bereits hatten. Ich verwende MsmqSubscriptionStorage und der Herausgeber (Web-App) implementiert die IAuthorizeSubscriptions-Schnittstelle.

Wie kann ich die Abonnements verlängern und auch die AuthorizeSubscribe() aufrufen? Ist das möglich? Was ist dein Vorschlag für dieses Szenario?

Antwort

3

Wenn NServiceBus MsmqSubscriptionStorage ordnungsgemäß verwendet, sollte der Bus nach iisreset initialisieren und die vorhandenen Subskriptionen aus der konfigurierten Speicherwarteschlange laden. Dieser Warteschlangenname kann entweder durch Konfiguration festgelegt werden oder, wenn er weggelassen wird, sollte er standardmäßig auf einen Namen basieren, der auf einer Assembly plus "_storage" basiert. Da ich dies jedoch nie aus einer Webanwendung heraus verwendet habe, weiß ich nicht, was das in diesem Szenario wäre, da es keine Klasse gibt, die IConfigureThisEndpoint implementiert.

Das heißt, versuchen, ein Ereignis aus einer Webanwendung zu veröffentlichen ist ein sehr ekliges Geschäft, und es ist generally advised that you avoid just that.

+0

David, vielen Dank für die Antwort und vielen Dank für den von Ihnen angegebenen Link. Wusste das nicht! – rguerreiro