1

这是我的环境:
* Windows 7
* 安装了 RavenDb.Embedded 与 NuGet 最终拉取版本 2.0.2230
* IIS 7
* VS2012 Express
* MVC 4 * 在调试模式下运行。

Web.config 部分...

<connectionStrings>  
  <add name="RavenDb" connectionString="DataDir = ~\RavenData" />  
</connectionStrings>  
<appSettings>  
  <add key="webpages:Version" value="2.0.0.0" />  
  <add key="webpages:Enabled" value="false" />     
  <add key="PreserveLoginUrl" value="true" />   
  <add key="ClientValidationEnabled" value="true" />  
  <add key="UnobtrusiveJavaScriptEnabled" value="true" />  
  <add key="RavenDb/Port" value="8081" />  
  <add key="RavenDb/DataDir" value="~\RavenData" />  
  <add key="RavenDb/AnonymosAccess" value="Get" />  
</appSettings>  

应用程序启动中的代码是....

// Test getting create connection to new ravenDB
IDocumentStore test = new EmbeddableDocumentStore
{
    ConnectionStringName = "RavenDb",
    UseEmbeddedHttpServer = true
};
test.Initialize();

//never get to this line
int x = 12;

乌鸦文件确实被创建了。然而,代码永远不会达到 x = 12。它看起来陷入了无限循环。我从来没有收到错误消息。

4

1 回答 1

0

我能够让它与您的配置一起使用。如果您想查看代码,请点击此处。

https://github.com/khalidabuhakmeh/MvcRavenDbEmbedded

我会发布最重要的部分。

namespace EmbeddedRavenSite
{
    public class MvcApplication : System.Web.HttpApplication
    {
        public IDocumentStore DocumentStore;

        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            DocumentStore = RavenConfig.Init();
        }
    }
}

和 RavenConfig 类:

namespace EmbeddedRavenSite.App_Start
{
    public static class RavenConfig
    {
        public static IDocumentStore Init()
        {
            return new EmbeddableDocumentStore
            {
                ConnectionStringName = "RavenDb",
                UseEmbeddedHttpServer = true
            }.Initialize();

        }
    }
}

希望有帮助。我包含的代码具有 NuGet 包还原功能,因此您应该能够立即构建并开始工作。祝你好运 :)

于 2013-02-27T14:03:40.590 回答