加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 分布式事务完成 可以在新事务或NULL事务中登录此会话

发布时间:2020-12-16 00:43:55 所属栏目:asp.Net 来源:网络整理
导读:只是好奇,如果有其他人有这个特殊的错误,知道如何解决它? 情况如下: 我们有一个ASP.NET Web应用程序使用在Windows Server 2008 IIS场上运行的Enterprise Library连接到SQL Server 2008群集后端。 MSDTC已打开。数据库连接汇总。 我的怀疑是,线上某处有
只是好奇,如果有其他人有这个特殊的错误,知道如何解决它?

情况如下:

我们有一个ASP.NET Web应用程序使用在Windows Server 2008 IIS场上运行的Enterprise Library连接到SQL Server 2008群集后端。
MSDTC已打开。数据库连接汇总。

我的怀疑是,线上某处有一个失败的MSDTC事务,连接已经返回到池,而另一个页面上的下一个查询正在拾起不正常的连接,并得到这个特定的错误。有趣的是我们在一个不需要分布式事务(提交到两个数据库等)的查询上得到这个错误。当我们收到错误时,我们只做了select query(无事务)。

我们做了SQL Profiling,查询运行在SQL Server上,但是从来没有回过头(因为MSDTC事务已经在连接中中断了)。

伴随的其他一些相关错误是:

>新请求不允许启动
因为它应该有效
事务描述符。
>内部.Net框架数据提供者错误60。

解决方法

赏金可能有助于获得您所寻求的答案,但如果您提供一些代码示例,并且更好地描述错误发生时,您可能会获得更好的答案。

错误是否间歇性发生?这听起来像你的描述。

您是否在Microsoft建议的使用TransactionScope块中封闭要作为事务完成的关闭?这应该有助于避免奇怪的交易行为。回想一下,使用块确保对象始终被处理,而不管抛出异常。见:http://msdn.microsoft.com/en-us/library/ms172152.aspx

如果您使用TransactionScope,则有一个参数System.TransactionScopeOption.RequiresNew,它告诉框架始终为此代码块创建一个新事务:

06000

此外,如果您怀疑连接发生故障,然后重新连接到连接池,则可能的解决方案是将连接错误的代码包含在Try-Catch块中,并将该连接置于catch块中。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读