2013-06-22 32 views
0

我在過去幾天彈出此錯誤。我跟隨Asp.Net Mvc 4 and the Web Api: Building a REST Service from Start to Finish關於如何構建Rest服務API,然後一路走來,這是:無法打開本地計算機登錄請求的數據庫「ServicesDb」

無法打開登錄請求的數據庫「ServicesDb」。登錄失敗。
用戶'my-PC \ my'登錄失敗。

因此,我停了一會兒,讀了這本書,什麼也沒讀。所以我下載了book companion project,當我運行它時,我遇到了與我自己的服務相同的錯誤。

這讓我很震驚,因爲我一直使用本地數據庫引擎Windows Authentication。當我使用Entity Framework時,我沒有任何問題,所以我開始認爲這與我第一次使用的NHibernateFluent Nhibernate有關。

連接字符串:

<connectionStrings> 
    <add name="ServicesDb" 
     providerName="System.Data.SqlClient" 
     connectionString="Data Source=(LocalDb)\v11.0; 
     <!-- connectionString="Server=(LocalDb)\v11.0; <----- Tried this too --> 
      initial catalog=ServicesDb; 
      Integrated Security=True; 
      Application Name=Services API Website" /> 
</connectionStrings> 

有其他人遇到了這個問題,同時這本書以下?有誰知道什麼可能導致這種情況,我怎麼能通過它?

UPDATE:以下是未能執行的代碼,本書使用Ninject,我也是如此。

private void ConfigureNHibernate(IKernel container) 
     { 
      // Build the NHibernate ISessionFactory object 
      var sessionFactory = FluentNHibernate //Fails here, sessionFactory variable not instantiated. 
       .Cfg.Fluently.Configure() 
       .Database(
        MsSqlConfiguration.MsSql2008.ConnectionString(
         c => c.FromConnectionStringWithKey("ServicesDb"))) 
       .CurrentSessionContext("web") 
       .Mappings(m => m.FluentMappings.AddFromAssemblyOf<SqlCommandFactory>()) 
       .BuildSessionFactory(); 

      // Add the ISessionFactory instance to the container 
      container.Bind<ISessionFactory>().ToConstant(sessionFactory); //sessionFactory needed here 

      // Configure a resolver method to be used for creating ISession objects 
      container.Bind<ISession>().ToMethod(CreateSession); 

      container.Bind<ICurrentSessionContextAdapter>().To<CurrentSessionContextAdapter>(); 
     } 
+0

我從來沒有遇到集成安全性= nhibernate爲True的問題 – syclee

+0

也許嘗試使用簡單的'SqlConnection'連接字符串,看它是否有效。 –

+0

我有一個類似的問題,我發現數據庫名稱是寫在幾個文件:Settings.settings,App.config,DataClasses1.dbml 奇怪的是我的程序運行(和正確的數據庫),但錯誤消息仍然在那裏 –

回答

0

好的,在這兩種情況下,我都假定數據庫在那裏。這是因爲在Visual Studio中,連接字符串會在服務器瀏覽器中引發應用程序數據庫的陰影。正因爲如此,以前我曾與Entity Framework Code First合作過,它使用了Migration,併爲我處理了所有的SQL事務。

我打開Microsoft SQL Server Management Studio並確認數據庫確實存在。當我意識到它在那裏時,我創建了它並確保它匹配了我的連接字符串。之後,一切都很好,我可以在Visual Studio中執行我的SQL腳本。

相關問題