【问题标题】:Why is RavenDB hijacking my Nancy requests?为什么 RavenDB 劫持我的 Nancy 请求?
【发布时间】:2013-05-30 23:53:31
【问题描述】:

在使用相同连接代码的 Winforms 应用程序中,RavenDB 工作正常。我可以随意存储和检索文档。

当我尝试在 Nancy 应用程序中做同样的事情时,结果完全出乎意料。

Nancy 正在侦听端口 12345,RavenDB 以嵌入式模式运行,启用了 UseEmbeddedHttpServer 并侦听端口 8080。

http://localhost:12345/ 的第一个请求会根据请求获得网页响应。对http://localhost:12345/ 的任何后续请求都会重定向到/raven/studio.html。如果我向/widgetsNancy 发出的第一个请求按预期返回一个JSON 小部件列表,但任何后续请求都会返回:

Could not figure out what to do

Your request didn't match anything that Raven knows to do, sorry...

RavenDB 似乎在劫持 Nancy 正在监听的端口。有什么想法会导致这种行为吗?

【问题讨论】:

  • 不想标记为重复,但这听起来与here 描述的相同,在这种情况下,答案是端口设置不正确。您确定 RavenDB 在 8080 上吗?你能用你的初始化代码和/或设置更新吗?另外,请确认您使用的 RavenDB 版本。谢谢。
  • 运行 Winforms 客户端时,是的。运行 Nancy 客户端时,没有。在第一个实例化 RavenDB 文档存储的 Nancy 请求之后,它接管了端口 12345。
  • 并使用 Raven build 2360。

标签: c# iis ravendb .net-4.5 nancy


【解决方案1】:

当由 IIS 托管时,需要明确设置 RavenDB 的端口。

默认值来自 IIS 配置,这就是从 Winforms 应用程序运行嵌入式模式时不会出现问题的原因。

(db as EmbeddableDocumentStore).Configuration.Port = 8080;

【讨论】:

  • 看来我们同时找到了答案。 :)
【解决方案2】:

我没有充分的理由认为它会这样做。

也许您应该指定一个明确的Raven/Port 设置。见these docs

或者您可以通过编程方式进行:

var store = new EmbeddableDocumentStore {UseEmbeddedHttpServer = true};
store.Configuration.Port = 8080;

【讨论】:

    猜你喜欢
    • 2021-04-06
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 2017-01-25
    • 2015-07-10
    • 2023-03-16
    相关资源
    最近更新 更多