【问题标题】:NServiceBus 3.2 Samples IssueNServiceBus 3.2 示例问题
【发布时间】:2012-05-29 20:27:49
【问题描述】:

我正在尝试为 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。

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

【问题讨论】:

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


    【解决方案1】:

    我一直在努力解决同样的问题 - 结果表明 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 配置中的端口号并添加自定义连接字符串。

    希望对您有所帮助, 干杯

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 对不起,我运行了 RunMeFirst.bat 几次,但仍然遇到同样的错误。我想我会等它出来的。 郁闷。还注意到该示例使用了已被标记为过时的 WaitForWeb()。
      • 3.2.1 已发布,有望解决此问题。
      • 在运行版本 3.2.1 时得到这个。启动端点时出现异常,已记录错误。原因:在“RavenTimeoutPersistence”类型上调用构造函数“Void .ctor(Raven.Client.IDocumentStore)”时引发异常。
      • 抛出的错误使跟踪端口 8080 可能被其他应用程序使用的事实变得很容易,这会导致问题。
      【解决方案3】:

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

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

      在那之后我的工作完美。

      【讨论】:

        猜你喜欢
        • 2011-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-24
        • 2014-08-07
        • 2010-12-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多