4

パブリッシャーが誤動作した場合に、NServiceBus からの Pub/Sub サンプルをセットアップする方法を理解したいと考えています。サンプルを開始して誤ってサブスクライバーを閉じた場合、再起動するとすべて正常に動作します。ただし、パブリッシャーを強制終了し、サブスクリプションが引き続き機能する場合、パブリッシャーを再起動すると、サブスクライバーがあり、メッセージを投稿しないことを認識していないようです。

構成エントリ <MsmqSubscriptionStorageConfig Queue="subscriptions"/> を追加しましたが、機能していないようです... 何か見逃しています。MsmqSubscriptionStorageConfig と DbSubscriptionStorageConfig についてグーグル検索しましたが、解決策が見つかりませんでした。

誰かが私を正しい方向に向けることができますか?

4

2 に答える 2

4

SQLite サブスクリプション ストレージ システムを使用して、.Net 4.0 の Pub/Sub サンプルでこれを機能させるには、いくつかの追加手順が必要であることがわかりました。

以前の提案と新しい提案を組み合わせて、必要な変更を次に示します。これらはすべて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>
    
  • この XML のチャンクをNServiceBus.Host.exe.configファイルの構成セクションに追加します。

    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0"/>
    </startup>
    
于 2011-04-02T18:07:51.133 に答える
3

パブリッシャーのプロファイルを運用に変更する必要があります。http://docs.particular.net/nservicebus/hosting/nservicebus-host/profilesを参照してください。

この方法でデバッグするには、パブリッシャー プロジェクトのプロパティの [デバッグ] タブに移動し、[開始オプション] セクションの [コマンド ライン引数] に NServiceBus.Production を入力します。

于 2010-02-06T11:18:20.913 に答える