[英]Entity framework with Unity “The underlying provider failed on Open.”
[英]Entity Framework giving exception : “The underlying provider failed on Open.”
我有一個測試。 發生的情況是,每當首先執行test1時,test2都會失敗,並顯示以下消息:
““ System.Data.EntityException:System.Data.EntityException:基礎提供程序在打開時失敗。無法打開登錄請求的數據庫“ DBEntities”。登錄失敗。”。
並且每當首先執行test2時,test1都會失敗,並顯示相同的消息。
在過去的三天里,我一直在這里。
[TestClass]
class MyTestClass
{
DBEntities db;
[TestInitialize]
public void Initializer()
{
db = new DBEntities();
}
[TestMethod]
public void test1()
{
db.Books.Add(new Book{ ...});
db.SaveChanges();
}
[TestMethod]
public void test2()
{
db.Books.Add(new Book{ ...});
db.SaveChanges();
}
[TestCleanup]
public void Clean()
{
db.Dispose();
}
}
這是DBEntities類的摘錄:
public class DBEntities : DbContext
{
public DbSet<Books> TheBooks{get;set;}
...
}
運行探查器后,我注意到此消息:
“用戶登錄失敗。原因:無法打開顯式指定的數據庫。”
經過很多lockAcquired
和lockReleased
語句之后。
問題可能是連接池嗎? 即使處理了EF對象,SQL提供程序是否也會嘗試保留測試之間的連接? 在那種情況下,同一用戶與同一數據庫的多個連接是否會出現問題?
嘗試在清理中顯式關閉連接:
db.Database.Connection.Close();
消息的重要部分是:
用戶“ domain1 \\ user1”的登錄失敗。
如果數據庫拒絕您傳遞的登錄信息,則EF無法工作。
有時,您可以在運行框中鍵入“ iisreset”,它將清除您描述的問題,尤其是在一切正常且突然停止工作的情況下。 由於系統內存不足,可能會發生此錯誤。 (至少就我而言)
如果通過IIS運行,請檢查附加到Web應用程序的IIS池的身份
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.