我想弄明白如何设置NServiceBus中的Pub / Sub样本,以便在发布者出现故障的情况下工作。 当我启动示例并意外关闭订阅者时,如果我重新启动一切正常。 但是,如果我杀了发布者并且订阅继续有效,如果我重新启动发布者,那么它似乎不知道它有订阅者并且不发布任何消息。
我添加了配置条目 < MsmqSubscriptionStorageConfig Queue =“subscriptions”/> 但似乎没有功能...我想念一些东西。我用Google搜索了MsmqSubscriptionStorageConfig和DbSubscriptionStorageConfig,但我找不到解决方案。
有人能指出我正确的方向吗?
答案 0 :(得分:4)
我发现需要几个额外的步骤才能使用SQLite订阅存储系统在.Net 4.0下使用Pub / Sub示例。
将以前的建议与新建议相结合,以下是必需的更改,所有这些更改都适用于MyPublisher
项目。
添加对System.Data.SQLite的引用。请务必选择与所需架构匹配的版本(x86 / x64)。这些项目可以在“二进制文件”文件夹中找到。
在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>
答案 1 :(得分:3)
您需要将发布商的个人资料更改为生产。 见http://docs.particular.net/nservicebus/hosting/nservicebus-host/profiles
要以这种方式进行调试,请转到发布者项目的属性,进入“调试”选项卡,然后将“NServiceBus.Production”放入“开始选项”部分的命令行参数中。