公司封装了操作数据库的DAL类库,可是在项目中总是会出现如下的错误:
1. The server failed to resume the transaction. Desc:540000098d.
2. The transaction active in this session has been committed or aborted by another session.
3. New request is not allowed to start because it should come with valid transaction descriptor
4. Cannot find table 0.(这个错误最近没了)
还有个问题就是为什么这些错误不是经常发生,而是到一定时间或者次数之后才发生,真是费解啊!
这些在网上找了很多,可是就没有找到合适的答案,也很仔细的看了源码,只怪自己功力不够,没有找出问题的根本原因!
希望能得到热心园友帮忙,如果有需要我可以给你看源码!
11 回答
SMILET
TA贡献1796条经验 获得超4个赞
hi , 2楼和3楼可能都说到点子上了。我查了下google 发现有人用ef的时候也碰到类似问题,结果是Context没有使用静态导致。所以我担心你那类库或者你使用的时候是否是唯一对象或者是是否没用静态对象?或者用单例也行,但是要保证多线程单列
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
@程序猿就是我: 非常抱歉,没有时间帮你看源码。你可以先把SqlTransaction和SqlConnection的关系和作用范围搞清楚后再去浏览你们的代码。
慕容708150
TA贡献1831条经验 获得超4个赞
看看是不是发生这种情况:
DbConnection conn1,conn2;
DbTransaction tranOfconn1 = conn1.BeginTransaction()
DbCommand cmdOfConn2; cmdOfConn2.Connection = conn2;
cmdOfConn2.Transaction = tranOfconn1;//!!!!
cmdOfConn2.ExecuteNoneQuery();//Error:2. The transaction active in this session has been committed or aborted by another session.
- 11 回答
- 0 关注
- 533 浏览
添加回答
举报
0/150
提交
取消