2010-02-06 2 views
4

Я хочу выяснить, как настроить Pub/Sub образец из NServiceBus для работы в случае сбоя издателя. Когда я запускаю образцы и случайно закрываю подписчиков, если я перезапускаю все, все работает нормально. Если я убил издателя, и подписки продолжают работать, если я перезапущу издателя, то он, похоже, не знает, что у него есть подписчики и не публикует никаких сообщений.NServiceBus постоянные подписки в Pub/Sub sample

Я добавил запись конфигурации < MsmqSubscriptionStorageConfig Queue = «подписки»/> , но это, кажется, не работает ... Я что-то пропустил. Я googled о MsmqSubscriptionStorageConfig и DbSubscriptionStorageConfig, но я не нашел решения.

Может ли кто-нибудь указать мне в правильном направлении?

ответ

3

Необходимо изменить профиль издателя на продукцию. См http://docs.particular.net/nservicebus/hosting/nservicebus-host/profiles

Для отладки этого пути, перейдите к свойствам проекта издателя, во вкладку Debug и положить в NServiceBus.Production в аргументах командной строки в разделе Параметров запуска.

+0

Я сделал это, добавил Хранилище подписки DB, найденное в образце OrderService, но я застрял с исключением: «База данных не была настроена с помощью метода базы данных». В .config я использовал sqlite, я верю, что файл sqlite не создан. Как мне настроить? – 2010-02-06 12:43:40

+2

Спасибо. Я нашел решение. Я пропустил свойство UpdateSchema узла DBSubscriptionStorage. Это полный тег для работы: <добавить Key = "connection.provider" Value = "NHibernate.Connection.DriverConnectionProvider" /> <добавить Key = msgstr "значение =".sqlite; Version = 3; New = True; "/> 2010-02-06 13:34:02

4

Я обнаружил, что требуется несколько дополнительных шагов, чтобы получить эту работу с образцом Pub/Sub в .Net 4.0, используя систему хранения подписки SQLite.

Сочетание предыдущих предложений с новыми, вот необходимые изменения, все из которых относятся к проекту MyPublisher.


  • Добавить ссылку на System.Data.SQLite. Обязательно выберите версию, соответствующую вашей архитектуре (x86/x64). Эти элементы можно найти в папке «binaries».

  • В файле App.config, добавьте следующее в качестве нового configSection элемента:

    <section name="DBSubscriptionStorageConfig" 
    type="NServiceBus.Config.DBSubscriptionStorageConfig, NServiceBus.Core" /> 
    
  • В файле App.config добавить следующее в качестве нового элемента конфигурации:

    <DBSubscriptionStorageConfig> 
        <NHibernateProperties> 
         <add Key="connection.provider" 
          Value="NHibernate.Connection.DriverConnectionProvider"/> 
         <add Key="connection.driver_class" 
          Value="NHibernate.Driver.SQLite20Driver"/> 
         <add Key="connection.connection_string" 
          Value="Data Source=.\Subscriptions.sqlite;Version=3;New=True;"/> 
         <add Key="dialect" 
          Value="NHibernate.Dialect.SQLiteDialect"/> 
        </NHibernateProperties> 
    </DBSubscriptionStorageConfig> 
    
  • Add этот фрагмент XML в разделе конфигурации файла NServiceBus.Host.exe.config:

    <startup useLegacyV2RuntimeActivationPolicy="true"> 
        <supportedRuntime version="v4.0"/> 
    </startup> 
    
Смежные вопросы