我正在使用SQL Server和ASP.NET.我有以下功能:
Using js = daoFactory.CreateJoinScope()
Using tran = New Transactions.TransactionScope()
'...
tran.Complete()
End Using
End Using
Run Code Online (Sandbox Code Playgroud)
但是,例外情况' 事务管理器已禁用其对远程/网络事务的支持.'被抛出.
JoinScope的描述:
Public Class JoinScope
Implements IJoinScope
Implements IDisposable
'...
End Class
Run Code Online (Sandbox Code Playgroud)
我已经在另一个具有相同环境的应用程序中以这种方式工作而没有问题,但在这里我遇到了这个问题.我该怎么做才能解决这个问题?
我知道这会很奇怪,但我想在我的MVC应用程序中触发错误,这个错误将基于LINQ查询,我希望从表中获取一条记录.虽然此记录将使用T-SQL命令(例如无限循环始终更新此记录)被阻止(数据库/表/行)级别,但我的LINQ查询将执行查询以读取该记录.当LINQ尝试然后结果应该在20-30秒之后超时,有人曾经尝试过这个吗?
使用 (TABLOCKX) 和同时使用 (TABLOCKX, HOLDLOCK) 提示有什么区别?似乎表被一个 TABLOCKX 独占锁定,直到事务提交,(TABLOCKX,HOLDLOCK)有什么好处?
例如,
BEGIN TRANSACTION SELECT TOP 1 * FROM Foo WITH (TABLOCKX)...
vs
BEGIN TRANSACTION SELECT TOP 1 * FROM Foo WITH (TABLOCKX, HOLDLOCK)...
Run Code Online (Sandbox Code Playgroud)