资源大全 | 神秘文化 | 在线翻译 | QQ专区 | 视频教程 | 彩信频道 | 搜索引擎 | BT下载 |  | 网站地图
设为首页
加入收藏
联系站长
您现在的位置: 一百网络 >> ASP.NET编程 >> Asp.Net开发 >> 文档正文
最近更新
普通文档 TransactionScope出错
普通文档 DataSet中DataRelation有
普通文档 实例讲解符合中国特色的
普通文档 (翻译)从底层了解ASP.
普通文档 (翻译)从底层了解ASP.
普通文档 Silverlight在IE中无法显
普通文档 也谈自定义配置处理类
普通文档 Ajax中AutoComplete的使
普通文档 实战 HTTP 处理程序(HTT
普通文档 实战 HTTP 处理程序(HTT
推荐文章
推荐文档 七招制胜ASP.NET应用程序
推荐文档 ASP.NET+XML打造网络硬盘
推荐文档 打造通用ASP.NET数据分页
推荐文档 利用ASP.NET访问共享网络
TransactionScope出错

文章作者:未知 录入时间:2007-9-16 来源:本站原创
网站声明:本站的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出处和原始作者,文章版权归本网站与文章作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。

TransactionScope  是.net 提供的可提升事务环境,开发软件的时候非常方便,但是在大数据量处理的时候,会莫名我出错,检查代码没有任何的错误

解决这个错误的方法:不用TransactionScope  ,自己写一个用MSDTC的事务就可以了。

我的项目里面用的就是这TransactionScope  ,但是在导入数据的时候,超过1万条记录(3张表)的时候,系统就报错了。数据在7000条的时候,没有任何问题。没有解决办法。

最好只好改变思路,不使用TransactionScope  ,参照微软的COM+1.5的帮助,写了下面的。插入5万条记录的时候,包括从客户端传到服务器端共花了7分钟,没有任何问题。

在.net 2.0的环境下,建议大家不好用TransactionScope  。

    public enum TransactionScopeOption
    {
        Suppress = TransactionOption.NotSupported,
        Required = TransactionOption.Required,
        RequiresNew = TransactionOption.RequiresNew
    }

    public class TransactionScope : IDisposable
    {
        bool m_Consistent = false;

        public void Complete()
        {
            if (m_Consistent == false)
            {
                m_Consistent = true;
                ContextUtil.MyTransactionVote = TransactionVote.Commit;
            }
            else
            {
                throw new InvalidOperationException("Cannot call Complete() more than once");
            }
        }
        public TransactionScope()
            : this(TransactionScopeOption.Required)
        { }

        public TransactionScope(TransactionScopeOption scopeOption)
        {
            ServiceConfig config = new ServiceConfig();
            config.Transaction = (TransactionOption)scopeOption;
             ServiceDomain.Enter(config);
            ContextUtil.MyTransactionVote = TransactionVote.Abort;
        }

        public void Dispose()
        {
            if (m_Consistent == false && ContextUtil.IsInTransaction)
            {
                ContextUtil.MyTransactionVote = TransactionVote.Abort;
            }
            ServiceDomain.Leave();
            m_Consistent = false;
        }
    }

  • 上一篇文档:

  • 下一篇文档: 没有了
  •     查找更多“TransactionScope出错”的内容  
    相关连接
    没有相关文档