Webservice在新的SQL Server 2014实例上遇到很多死锁

时间:2017-02-28 14:35:27

标签: sql-server web-services transactionscope

我们有一个新的数据库服务器,它运行SQL Server 2014网络版。我恢复了来自SQL Server 2008 R2实例的数据库。我们使用将数据导入数据库的Web服务。该网络服务使用TransactionScope

对于旧的数据库服务器,我从来没有遇到过麻烦,即使有3个或4个进程同时使用这个Web服务,但是当我对新的SQL Server 2014数据库进行尝试时,它立即陷入僵局。

更改的是数据库服务器,但设置或多或少相同。

我试图将transactionscope的isolationlevel设置为readcommitted,但这没有帮助..

有人有建议如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

TransactionScope类中有一个“功能”,默认构造函数在SERIALIZABLE隔离级别创建连接。不幸的是,这个“功能”还会导致池连接泄漏到SERIALIZABLE隔离级别,因为它们没有完全重置。 https://blogs.msdn.microsoft.com/dbrowne/2010/06/03/using-new-transactionscope-considered-harmful/

通过查看是否在可序列化的隔离级别中运行会话,您可以了解是否遇到此问题。

select * 
from sys.dm_exec_sessions
where transaction_isolation_level = 4