Jim*_*dra 23 sql asp.net msdtc transactions transactionscope
只是好奇是否有其他人有这个特殊的错误,知道如何解决它?
情景如下......
我们有一个ASP.NET Web应用程序,使用在Windows Server 2008 IIS场上运行的Enterprise Library连接到SQL Server 2008群集后端.MSDTC已开启.数据库连接汇集在一起.
我怀疑是在某个地方有一个失败的MSDTC事务,连接被返回到池中,而另一个页面上的下一个查询正在拾取行为不当的连接并得到了这个特殊的错误.有趣的是,我们在一个不需要分布式事务(提交到两个数据库等)的查询中得到了这个错误.当我们收到错误时,我们只做了选择查询(没有事务).
我们进行了SQL分析,并且查询在SQL Server上运行,但从未返回(因为MSDTC事务已在连接中中止).
其他一些相关的错误是:
赏金可能有助于获得您寻求的答案,但如果您提供一些代码示例并更好地描述错误发生的时间,您可能会获得更好的答案。
该错误是否只是间歇性地发生?从你的描述看来是这样的。
您是否按照 Microsoft 的建议将希望作为交易完成的平仓包含在块中using TransactionScope?这应该有助于避免奇怪的交易行为。回想一下,using块可确保无论抛出异常如何,对象始终被释放。请参阅此处:http ://msdn.microsoft.com/en-us/library/ms172152.aspx
如果您正在使用,TransactionScope则有一个参数System.TransactionScopeOption.RequiresNew告诉框架始终为此代码块创建一个新事务:
Run Code Online (Sandbox Code Playgroud)Using ts As New Transactions.TransactionScope(Transactions.TransactionScopeOption.RequiresNew) ' Do Stuff End Using
另外,如果您怀疑连接出现故障,然后将其放回到连接池中,则可能的解决方案是将可能导致连接故障的代码包含在 Try-Catch 块中,并将连接包含Dispose在 catch 块中。
| 归档时间: |
|
| 查看次数: |
23350 次 |
| 最近记录: |