3

我是 RavenDB 和可嵌入的东西的新手。我现在在谷歌上搜索了将近两个小时,但找不到我的问题的解决方案;可能是因为我仍然是 RavenDB n00b :-)

我的文档存储初始化看起来像这样并且工作正常(我可以查询文档):

IocContainer.Instance.RegisterSingle(() =>
{
    var ds = new EmbeddableDocumentStore {DataDirectory = "Data", UseEmbeddedHttpServer = true};
    return
        ds
            .Initialize()
            .OpenSession();
});

在第一个或两个请求中,路由按我期望的那样工作,所以我最终使用了我的 HomeController。再次刷新后,我最终进入了/raven/studio.html?...Great!但不是我期望降落的地方!

如果我随后将 URL 更改为 /Home,就像我的控制器一样,我会看到以下结果:

Could not figure out what to do
Your request didn't match anything that Raven knows to do, sorry...

当然,当我删除UseEmbeddedHttpServer它时,它就像以前一样工作,但这不是我想要的。我希望能够浏览文档。

我的默认 MVCRouteConfig使用 * 添加到 {id} 生成:

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{*id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}

任何帮助将不胜感激!

4

1 回答 1

4

关闭 RavenDb 中的内部 Http-server 或将 RavenDb-http-server 映射到另一个端口

1:

var ds = new EmbeddableDocumentStore {
   DataDirectory = [DataFolder],
  UseEmbeddedHttpServer = false
};

2:

int ravenPort = 8181;
NonAdminHttp.EnsureCanListenToWhenInNonAdminContext(ravenPort);
var ds = new EmbeddableDocumentStore {
   DataDirectory = [DataFolder],
   UseEmbeddedHttpServer = true,
   Configuration = {Port = ravenPort}
};

如果 2 Raven Studio 现在可以在端口 8181 上访问,而不是映射到您网站的端口 (80)

于 2013-01-14T23:24:28.770 回答