从使用相同连接代码的Winforms应用程序,RavenDB工作正常。我可以放弃存储和检索文件。
当我尝试在Nancy应用程序中执行相同操作时,结果完全出乎意料。
Nancy正在侦听端口12345,并且RavenDB正在嵌入式模式下运行,并启用UseEmbeddedHttpServer
并在端口8080上侦听。
http://localhost:12345/
的第一个请求按要求获取网页响应。对http://localhost:12345/
的任何后续请求都会重定向到/raven/studio.html
。如果我做的第一个请求是/widgets
Nancy按预期返回小部件的JSON列表,但任何后续请求都会返回:
Could not figure out what to do
Your request didn't match anything that Raven knows to do, sorry...
似乎RavenDB正在劫持Nancy正在监听的端口。什么会导致这种行为?
答案 0 :(得分:7)
当由IIS托管时,需要明确设置RavenDB的端口。
默认值来自IIS配置,这就是从Winforms应用程序运行嵌入式模式时不存在问题的原因。
(db as EmbeddableDocumentStore).Configuration.Port = 8080;
答案 1 :(得分:4)
我没有理由认为它会这样做。
也许你应该指定一个明确的Raven/Port
设置。请参阅these docs。
或者您可以以编程方式执行此操作:
var store = new EmbeddableDocumentStore {UseEmbeddedHttpServer = true};
store.Configuration.Port = 8080;