4

我正在尝试为 AsyncPages 运行 NServiceBus 示例。看起来很简单。

  1. 从 NServiceBus.com 下载最新版本
  2. 执行bat文件安装先决条件
  3. 打开解决方案
  4. 按 F5
  5. 在文本框中输入一个数字

当我这样做时,我得到了一个讨厌的 RavenDB 错误(NServiceBus 将其用作数据存储)。

Exception when starting endpoint, error has been logged. Reason: There is no index named: dynamic/TimeoutData

RavenDB 似乎没有或不能创建索引。不确定这是 RavenDB 错误还是 NServiceBus 错误,但它使我无法运行示例。

提前致谢

更新:

按照 Andreas 的建议升级到 3.2.1 版时。

Exception when starting endpoint, error has been logged. Reason: An exception was thrown while invoking the constructor 'Void .ctor(Raven.Client.IDocumentStore)' on type 'RavenTimeoutPersistence'.

我现在也注意到样本和 TopShelf 的问题。他们在 topshelf 中托管的是引用 3.2.0 版本的 NServiceBus 而不是 3.2.1。

到目前为止,这不是一次有趣的体验,但也许我应该放弃样品并直接投入到一些东西中。

4

3 回答 3

3

我一直在为同样的问题苦苦挣扎——结果发现 NServiceBus 与 RavenDB 的连接存在问题。

RunMeFirst.bat 尝试配置东西,但显然并不总是成功。

在我的情况下,我安装了 RavenDB,但没有安装在 NServiceBus 期望的标准端口 8080 上。检查 Raven 安装文件夹中的 Raven.Server.exe.config(默认为 C:\RavenDB\RavenDB.0.0.0\RavenDB.Server)。应该定义端口号。如果不同,您可以通过添加 web.config 或 app.config 来覆盖到 RavenDB 的 NServiceBus 默认连接字符串:

<connectionStrings>
    <add name="NServiceBus.Persistence" connectionString="Url=http://localhost:8081;" />
</connectionStrings>

其中 8081 是示例不同的 RavenDB 连接端口。

其他可能出错的事情是您的 RavenDB 与使用端口 8080 的其他服务冲突,要解决此问题,您可以更改 Raven 配置中的端口号并添加自定义连接字符串。

希望有帮助,干杯

于 2012-08-14T11:23:44.547 回答
2

是的,我们已经看到了这个问题,它将在即将发布的补丁版本中修复(很快)。当前的解决方法是再次调用 RunMeFirst.bat。

于 2012-05-29T21:42:22.780 回答
0

我得到了同样的症状“RavenTimeoutPersistence”,原因是 RunMeFirst.bat 没有正确运行是由于安全限制。

  1. 不要忘记右键单击 NServiceBus3.2.x.zip 文件,属性然后“取消阻止”
  2. 批处理文件需要以管理员权限运行。因此,使用“以管理员身份运行”打开命令提示符,然后运行它

在那之后,我的工作完美。

于 2012-08-22T20:25:53.107 回答