c# 解决 EntityFramework 基础提供程序在 Open 上失败
2017-01-27 10:17
676 查看
转载请注明来自:黄朝辉的博客
“EntityFramework 基础提供程序在 Open 上失败”,有时会报空指针的错误。
在Win7系统中,位于
一个为64位的,一个为32位的,最好两个都修改。
文件中加入以下内容:
需加在configuration的闭合结点前。
1. 出现的问题
从Excel中导入数据到数据库中,当Excel中记录比较多的时候,会报错:“EntityFramework 基础提供程序在 Open 上失败”,有时会报空指针的错误。
2. 原因
事务默认的事务超时时间(Timeout)不够,当事务还在执行,但是超时时间就已经到了。3. 解决办法
修改默认的事务超时时间(Timeout)TransactionOptions transactionOption = new TransactionOptions(); //设置事务隔离级别 transactionOption.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; //设置事务超时时间,这里设置为8分钟 transactionOption.Timeout = new TimeSpan(0, 8, 0); using (var scope = new TransactionScope(TransactionScopeOption.Required, transactionOption)) { try { //你的事务 //…… scope.Complete(); } catch (Exception objErr) { //发生异常时候的处理 } }
4. 注意事项
每台机器有个事务的最大超时时间(maxTimeout)为10分钟,当设置的事务超时时间大于10分钟时,还需要修改机器的最大超时时间,位于machine.config文件中。
在Win7系统中,位于
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config和
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
一个为64位的,一个为32位的,最好两个都修改。
文件中加入以下内容:
<system.transactions> <machineSettings maxTimeout="00:59:00" /> <defaultSettings timeout="00:59:00"/> </system.transactions>
需加在configuration的闭合结点前。
相关文章推荐
- Entity Framework MVC 使用事物后( new TransactionScope() ) 报错 服务器×××上的MSDTC不可用解决办法 基础提供程序在 Open 上失败
- WCF MSDTC 基础提供程序在OPEN上失败解决方法
- EntityFramework 基础提供程序在 Open 上失败。
- C# .NET MVC 基础提供程序在 Open 上失败
- entity framework 数据库连接异常:基础提供程序在 Open 上失败
- asp.net数据库操作时出现错误 其他信息: 基础提供程序在 Open 上失败。
- oracle.DateAccess.Client.OracleException EntityException:基础提供程序在Open上失败
- entity framework 基础提供程序在 Open 上失败
- entity framework codefirst 用户代码未处理DataException,InnerException基础提供程序在open上失败,数据库生成失败
- WCF Oracle 基础提供程序在 Open 上失败。
- 基础提供程序在 Open 上失败
- “基础提供程序在Open上失败”
- 基础提供程序在 Open 上失败
- "基础提供程序在Open上失败"
- 问题:基础提供程序在 open 上失败。
- EF出现基础提供程序在 Open 上失败
- VS连接远程数据库,连接sqlserver2008,显示“基础提供程序在 Open 上失败”
- 基础提供程序在Open上失败
- Submit 操作失败。基础提供程序在 Open 上失败。 InnerException 消息: 服务器 'DBSERVER' 上的 MSDTC 不可用。
- SQL2008无法连接到.\SQLEXPRESS,用户'sa'登录失败(错误18456)图文解决方法 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, er