如果它的事項我使用的成功運行單獨而不是:我的WebAPI/signalr App我端到端測試,如果分批
- 的xUnit爲測試運行
- C#4.5.1(這樣我可以採取的
TransactionScopeAsyncFlowOption.Enabled
優勢,只是回滾跨線程事務 -[AutoRollback]
沒有工作) - Protractor.NET爲瀏覽器/驅動器(客戶端使用角)
- Owin自行主辦的網站(如果這是正確的術語)
- 的EntityFramework每次測試前,在我的應用程序來完成大部分的數據訪問建立的測試數據
當我通過右鍵單擊運行每個測試,一切正常。然而每當我使用Test Runner/Test Explorer運行它們時,除了第一次拋出異常外,
我遵循Arrange-Act-Assert模式。在「安排」期間,我致電DbContext.SaveChanges()
。這就是當這個錯誤拋出:
Result Message:
System.Exception : The underlying provider failed on Open.
---- System.Data.Entity.Core.EntityException : The underlying provider failed on Open.
-------- System.Transactions.TransactionException : The operation is not valid for the state of the transaction.
------------ System.Transactions.TransactionPromotionException : Failure while attempting to promote transaction.
---------------- System.Data.SqlClient.SqlException : There is already an open DataReader associated with this Command which must be closed first.
-------------------- System.ComponentModel.Win32Exception : The wait operation timed out
我試過Google搜索幾個錯誤。在我的連接字符串中啓用MARS不能解決它。在我的連接字符串中擴展超時並沒有解決它。
我想:也許有人知道這種嵌套異常模式的一些事情,並且可以對精確問題提供一些指導。
如果不是,我的下一步診斷步驟是找出異常被拋出的原因?