NServiceBus 3.2样品问题

时间:2012-05-29 20:27:49

标签: .net asp.net-mvc nservicebus ravendb

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

  1. 从NServiceBus.com下载最新消息
  2. 执行bat文件以安装先决条件
  3. 打开解决方案
  4. 按F5
  5. 在文本框中输入一个数字
  6. 当我这样做时,我得到一个令人讨厌的RavenDB错误(NServiceBus将其用作数据存储)。

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

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

    先谢谢

    更新:

    升级到版本3.2.1时,正如Andreas建议的那样。

    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。

    到目前为止,这不是一次有趣的体验,但也许我应该放弃样本并直接进入某些目标。

3 个答案:

答案 0 :(得分: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来覆盖NServiceBus默认连接字符串到RavenDB:

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

其中8081是不同的RavenDB连接端口样本。

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

希望有所帮助, 干杯

答案 1 :(得分:2)

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

答案 2 :(得分:0)

我得到了同样的症状“RavenTimeoutPersistence”RunMeFirst.bat无法正常运行的原因归结为安全限制。

  1. 不要忘记右键单击NServiceBus3.2.x.zip文件,然后选择“解除阻止”属性
  2. 批处理文件需要以管理员权限运行。因此,使用“以管理员身份运行”打开命令提示符,然后运行它
  3. 之后我的工作完美。