2009-10-12 30 views
0

從調試模式執行代碼時,我隨機得到以下錯誤。經過幾個命令已立即執行調試模式下的TransactionScope隨機錯誤

Cannot access a disposed object. 
Object name: 'SqlDelegatedTransaction'. 
  • 錯誤被拋出,而不是一個超時問題
  • 我只有一個交易,用(VAR範圍=新的TransactionScope

    (的TransactionOption打開.Required))

  • 在嵌套代碼中使用上面的相同語句打開多個連接。

  • 我使用SQLSERVER 2008

出了什麼問題?

+2

您需要添加一些更多的細節:顯示更多代碼,在代碼的哪一行發生此錯誤?你在做什麼/調試(也許改變'執行'到該塊內?)。 – 2009-10-12 14:47:59

+0

在退出使用區塊後,您是否試圖調用任何東西?在使用塊之後,對象被放置。我建議通過你的代碼,並驗證你沒有意外退出使用塊的錯誤的'}'。 – 2009-10-12 16:06:39

回答

0

當您使用TransactionOption.Required事務加入環境事務。

一個可能的理論是:

  • 如果你去通過交易範圍和不調用scope.Complete(),它會處置abmient交易。試圖對數據庫運行的下一個代碼將失敗。你使用SQL Server 2000,不支持多活動結果集(MARS)
  • 請問您的連接字符串指定MultipleActiveResultSets

    另一個辦法是相對於活動結果集的問題= true