System.Data.OleDb.OleDbException:Unspecified error异常处理的方法

System.Data.OleDb.OleDbException: Unspecified error异常处理的方法

关于这个异常从以下几个方面讨论:

状况:

    昨天做了个项目,在本地测试没事,可是上传到服务器后一开始能访问,不过当我点击的速度变快,或多访问几次就出错,这时我发现只是与数据库交互的页出现这个异常,而其他的静态页都没事,并且当你重启应用程序域或间隔10分钟后左右访问就又没事了。

环境:

    这个异常通常会发生在这样的一个环境中:(1)国外的服务器。(2)数据库是access

处理方法:

    这里我们先不说这个异常产生的原因先来说说处理这个异常的方法:

    第一种:MSDN里的说明,这是因为没有权限在临时目录里写文件而产生的。

    这种问题的原因:系统temp文件夹访问权限不够修改方法如下:进工具-文件夹选项-查看-把使用简单文件共享(推荐),关掉。然后进windowstemp,单击右键选择-属性,你就会看到一个叫做“安全”的选项,添加一个everyone,权限设置为完全控制,再将你正在使用windows的用户也设置为完全控制,就OK了。

    第二种:用ASP.NET的写的WEB程序,当访问量过多后,在登录时就会报错Unspecified error 0x80004005,是连不上数据库了,查找了相关原因,是服务器上IIS向临时文件夹写文件写满了,写不进去了,要重新启动一下服务器,或者要清理临时文件或者调整磁盘空间(用磁盘配额。给IIS帐号:Internet Guest Account在C盘足够大空间的写权限) 或者 把临时文件夹定义到别的足够大的磁盘。

    第三种(我们真正用到的):不过我们不能按照他说的那样做,因为我们通常没有操作服务器的权限,所以我们只能从自己的程序上下手,我们要做的是什么呢?那就是尽量显示打开数据库连接,并且显示关闭数据库连接,并且保证打开时间尽可能的短。

异常产生原因:

    通常这个异常会发生国外的空间上并且数据库是ACCESS,国内不常见.原因是一般打开国外的空间网速通常会比较慢,打开时间比较长,从而造成数据库的连接打开的时间长,这样当多个用户同时登陆网站就会同时操作数据库,而access的数据库的并发是不好的,所以就出现这个异常

(文/zhangmeng)

本文来源:http://www.cnblogs.com/zhangmeng/archive/2010/10/16/1853052.html


如果给你带来帮助,欢迎微信或支付宝扫一扫,赞一下。