3

RavenDB と埋め込み可能なものは初めてです。Google で約 2 時間検索しましたが、問題の解決策が見つかりません。おそらく私はまだ RavenDB n00b だからです :-)

ドキュメント ストアの初期化は次のようになり、正常に動作します (ドキュメントのクエリを実行できます)。

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

最初の 1 つまたは 2 つのリクエストでは、ルーティングは期待どおりに機能しているため、HomeController に行き着きます。もう一度リフレッシュした後、私は/raven/studio.html?...素晴らしいです!しかし、私が着陸すると思っていた場所ではありませんでした!

次に、コントローラーのように URL を /Home に変更すると、次の結果が表示されます。

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

もちろん、削除するUseEmbeddedHttpServerと以前と同じように機能しますが、それは私が望んでいることではありません。ドキュメントを閲覧できるようにしたい。

RouteConfig* を {id} に追加して生成されたデフォルトの MVC :

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 サーバーをオフにするか、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 は、Web サイトのポート (80) にマップされるのではなく、ポート 8181 で到達可能になりました。

于 2013-01-14T23:24:28.770 に答える