解决Access出现的0x80004005问题
说明一下:这个错误总会在运行一段时间后出现,而等一会工(不定多少时间),或者重新启动IIS或者服务器,这个问题就解决了。而再运行一会又会(时间越来越短)出现这个问题。
唯一可以解释的就是服务器临时文件满了!!!!而这又不好证明,我不可能一直测试,让我的临时文件也满了(就算是COPY文件到临时目录里,也不能算是IIS帐号的,而是操作者的),而且临时文件它自己(OLEDB的链接线程)也会删除的。只好另外想办法,就是用磁盘配额。给IIS帐号:Internet Guest Account在C盘只有10K的写权限,然后测试,果然问题如期而致。。。。。。
Webb.WAVE.Controls.WaveExpire.LoadExpireDateForClient(DataTable i_table, Int64 i_clientID) +189
而我在自己的电脑是运行时,基本上没出现这样的问题,于是反复的查找原因,不得其解,在MSDN里找到了三篇相关的文章:其中这一篇还有点道理:
Webb.WAVE.inc_Client_AccessManage.Page_Load(Object sender, EventArgs e) +85
[OleDbException (0x80004005): Unspecified error]
System.Web.UI.Control.LoadRecursive() +98
System.Data.OleDb.OleDbConnection.Open() +203
然而我不解的是,为什么在前几个星期的测试中没有这个问题,而在最近几天,出现的越来越频繁呢?
System.Data.OleDb.OleDbConnection.InitializeProvider() +57
Moreover, when opening the Access database through IIS or a Windows NT service, and when IIS or the service is running under the local system account, the TMP or TEMP system environment variable is used. When the Web services or Windows NT service are started using a user account, the TMP/TEMP user profile environment variables is used.RESOLUTION
希望这篇文章能帮助那些还没有解决问题的人。同时,MS网站及MSDN上的几篇文章也都还很有帮助意义的,特别是说明的其它几个错误原因……
思考几小时间后,我想会不会是不能建立临时文件的原因呢?其实只要能让错误在我自己的电脑上出现,那我就好办了,但问题是,只是偶而出现在我的电脑上,而且很快就好了,从头到尾都只出现过两三次。但在服务器上却出现问题越来越多了,几分钟就不行了。根据前面的一些文章来分析,我决定做以下一个测试:
System.Web.UI.Control.LoadRecursive() +35
2、同时也删除它在临时目录(C:\Documents and Settings\WEBB-COUNTRY-WU\ASPNET\Local Settings\Temp,不的机器所有不同)的写权限。
System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr) +20
You must restart the computer after changing any environment variables.
Webb.WAVE.Controls.OleDBManager.FillDataTable(DataTable i_dataTable) +85
System.Web.UI.Control.LoadRecursive() +98
System.Web.UI.Page.ProcessRequestMain() +750
The problem can occur only when the data source is opened under the Microsoft Internet Information Server (IIS) or a Microsoft Windows NT service but not under a logged-on user account.CAUSE
在网上找了几篇相关的文章(有好多论坛上的帖子也有讨论这个问题的,但我没能找到解决答案):
If TMP/TEMP is defined but points to a nonexistent folder, the error occurs.
Define a TMP or TEMP environment variable and assign the variable to an existing folder. If you are accessing the Access database from IIS, be certain to check the system environment settings rather than environment variables of the logged-on user. Also ensure that the IUSER anonymous IIS account has access to the temporary folder.
1、删除IIS在Windows下的帐号(Internet Guest Account)的文件写权限当然,只对项目的目录。
Jet creates a temporary file when the engine is started. In doing so, it first checks the TMP environment variable and uses that path to define where the temporary file is created. If it doesn't see a TMP environment variable, it looks for the TEMP environment variable. If TEMP is not defined, it then uses the Windows folder (\WINDOWS or \WINNT).
System.Web.UI.Control.OnLoad(EventArgs e) +67
到此,可以肯定:服务器上的临时文件太多了,看来是要重新启动一下服务器,或者要清理临时文件或者调整磁盘空间了……
Webb.WAVE.inc_Client_AccessManage.LoadExpireDate(String i_sortKey) +99
项目做了三个月了,终于也差不多完成了,昨天交去测试,结果出现了下面这样的问题:
Environment variables are set under Windows NT 4.0 by going to the Control Panel and clicking System and then selecting the Environment tab.
When trying to connect to an Access .mdb file, an ODBC error is returned stating "Disk or Network Error". The Microsoft OLE DB Provider for the Microsoft Jet database engine may also return an "Unspecified error" (error code = 0x80004005) message.
好了,终于在我的电脑上也出现了同样的错误,而且所有的与数据库相关的页面都不能访问。而且根据MSDN里的说明,这是因为没有权限在临时目录里写文件而产生的,与之相同。然而,问题又在于,服务器上的并不是一直错误,而是一时错误一时正常。
SYMPTOMS
相关热词: 解决
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/sql/access/1397.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
Windows 7添加Access数据源
时间:2020-12-29
-
2012年上半年计算机二级
时间:2020-12-08
-
2014年计算机二级考试Acc
时间:2020-12-08
-
ACCESS数据库多表查询技巧
时间:2020-12-08
-
Access教程_access数据库教程
时间:2020-12-08
-
Access2007教程 怎样在设计视
时间:2020-12-08
-
Access2007表的数据表教程
时间:2020-12-08
-
如何在Access中创建数据表
时间:2020-12-08
热门文章
-
在Access 2007中保护Access密码和进行加密
时间:2020-12-07
-
如何学会对ACCESS数据库的性能进行分析
时间:2020-12-08
-
Access2007数据表的操作
时间:2020-12-07
-
在Access2007表中添加和删除字段
时间:2020-12-07
-
Access2000教程:Access导入数据库文件
时间:2020-12-07
-
Windows 7添加Access数据源
时间:2020-12-29
-
Access2007教程 怎样在设计视图下创建查询
时间:2020-12-08
-
Access2000教程:Access 如何加密/解密数据库
时间:2020-12-07
-
在Access2007中使用“多值”实现文字的su
时间:2020-12-07
-
Access教程_access数据库教程_access数据库入
时间:2020-12-08
