【问题标题】:NServiceBus RavenDB exceptionNServiceBus RavenDB 异常
【发布时间】:2015-11-19 11:30:43
【问题描述】:

当我的 NServiceBus 控制台显示以下消息时,我有时会收到一个异常:

NServiceBus.Timeout.Hosting.Windows.TimeoutPersisterReceiver [(null)] <(null)> - Polling next retrieval is at 11/19/2015 11:20:49.

Exception:
A first chance exception of type 'System.Net.WebException' occurred in System.dll

Additional information: The remote server returned an error: (404) Not Found.

Callstack:
    [External Code] 
    Raven.Client.Lightweight!Raven.Client.Connection.HttpJsonRequest.ReadJsonInternal(System.Func<System.Net.WebResponse> getResponse) Line 332 C#
    Raven.Client.Lightweight!Raven.Client.Connection.HttpJsonRequest.ReadResponseJson() Line 225    C#
    Raven.Client.Lightweight!Raven.Client.Connection.ServerClient.DirectGet(string serverUrl, string key) Line 203  C#
    Raven.Client.Lightweight!Raven.Client.Connection.ReplicationInformer.RefreshReplicationInformation(Raven.Client.Connection.ServerClient commands) Line 351  C#

Raven.Client.Lightweight!Raven.Client.Connection.ReplicationInformer.UpdateReplicationInformationIfNeeded.AnonymousMethod__6() Line 134 C#
    [External Code]

这是一个异常,它在 RavenDB 代码中被抛出并捕获,所以我怀疑这不会干扰我自己的代码。但我可能隐藏了一个问题。

所以我想知道为什么会发生这种异常以及如何避免它?

【问题讨论】:

  • 什么版本的 NSB/Raven?
  • NSB 4.6.1 乌鸦 2.0.2375

标签: timeout ravendb nservicebus


【解决方案1】:

没关系,当您尝试加载不存在的文档时会引发 404 错误。 这是意料之中的,也是其工作原理的一部分。

【讨论】:

  • 这对我来说并不好,因为我在调试时看到异常停止了我的 Visual Studio,这很烦人。这就是为什么我认为应该只在例外情况下引发异常并且由外部干扰而不是由您自己的代码引起。如果 RavenDB 代码正常,那么它们应该返回错误代码而不是引发异常
  • 您需要与 Microsoft 合作。该异常是由 WebRequest 类引发的,我们没有写。
  • 不,Microsoft 不会无故抛出异常!如果他们抛出该异常是因为您正在请求一个不存在的 Web 对象,那么您不应该这样做。
  • 您是否以提升的权限(以管理员身份)启动此端点?
  • Miguel,您正在尝试加载一个不存在的文档,因此我们返回 404。客户端,该 404 已变成异常
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多