欢迎来到HELLO素材网! 南京网站制作选择顺炫科技
丰富的DIV CSS模版、JS,jQuery特效免费提供下载
当前位置:主页 > 建站教程 > 服务器教程 >

处理Access出现的0x80004005成绩

发表于2019-04-24 18:06| 次阅读| 来源网络整理| 作者session

摘要:处理Access出现的0x80004005成绩

处理Access出现的0x80004005成绩

  这篇论坛文章着重引见了Access数据库出现0x80004005成绩的处理方法,更多内容请参考下文:
  
  名目做了三个月了,终于也差不多实现了,昨天交去测试,后果出现了下面这样的成绩:
  
  [OleDbException(0x80004005):Unspecifiederror]
  
  System.Data.OleDb.OleDbConnection.ProcessResults(Int32hr)+20
  
  System.Data.OleDb.OleDbConnection.InitializeProvider()+57
  
  System.Data.OleDb.OleDbConnection.Open()+203
  
  Webb.WAVE.Controls.OleDBManager.FillDataTable(DataTablei_dataTable)+85
  
  Webb.WAVE.Controls.WaveExpire.LoadExpireDateForClient(DataTablei_table,Int64i_clientID)+189
  
  Webb.WAVE.inc_Client_AccessManage.LoadExpireDate(Stringi_sortKey)+99
  
  Webb.WAVE.inc_Client_AccessManage.Page_Load(Objectsender,EventArgse)+85
  
  System.Web.UI.Control.OnLoad(EventArgse)+67
  
  System.Web.UI.Control.LoadRecursive()+35
  
  System.Web.UI.Control.LoadRecursive()+98
  
  System.Web.UI.Control.LoadRecursive()+98
  
  System.Web.UI.Page.ProcessRequestMain()+750
  
  阐明一下:这个谬误总会在运转一段工夫后出现,而等一会工(不定多少工夫),或许重新启动IIS或许服务器,这个成绩就处理了。而再运转一会又会(工夫越来越短)出现这个成绩。
  
  而我在本人的电脑是运转时,根本上没出现这样的成绩,于是重复的查找缘由,不得其解,在MSDN里找到了三篇相干的文章:其中这一篇还有点情理:
  
  SYMPTOMS
  
  WhentryingtoconnecttoanAccess.mdbfile,anODBCerrorisreturnedstating"DiskorNetworkError".TheMicrosoftOLEDBProviderfortheMicrosoftJetdatabaseenginemayalsoreturnan"Unspecifiederror"(errorcode=0x80004005)message.
  
  TheproblemcanoccuronlywhenthedatasourceisopenedundertheMicrosoftInternetInformationServer(IIS)oraMicrosoftWindowsNTservicebutnotunderalogged-onuseraccount.CAUSE
  
  Jetcreatesatemporaryfilewhentheengineisstarted.Indoingso,itfirstcheckstheTMPenvironmentvariableandusesthatpathtodefinewherethetemporaryfileiscreated.Ifitdoesn'tseeaTMPenvironmentvariable,itlooksfortheTEMPenvironmentvariable.IfTEMPisnotdefined,itthenusestheWindowsfolder(\WINDOWSor\WINNT).
  
  IfTMP/TEMPisdefinedbutpointstoanonexistentfolder,theerroroccurs.
  
  Moreover,whenopeningtheAccessdatabasethroughIISoraWindowsNTservice,andwhenIISortheserviceisrunningunderthelocalsystemaccount,theTMPorTEMPsystemenvironmentvariableisused.WhentheWebservicesorWindowsNTservicearestartedusingauseraccount,theTMP/TEMPuserprofileenvironmentvariablesisused.RESOLUTION
  
  DefineaTMPorTEMPenvironmentvariableandassignthevariabletoanexistingfolder.IfyouareaccessingtheAccessdatabasefromIIS,becertaintocheckthesystemenvironmentsettingsratherthanenvironmentvariablesofthelogged-onuser.AlsoensurethattheIUSERanonymousIISaccounthasaccesstothetemporaryfolder.
  
  Youmustrestartthecomputerafterchanginganyenvironmentvariables.
  
  EnvironmentvariablesaresetunderWindowsNT4.0bygoingtotheControlPanelandclickingSystemandthenselectingtheEnvironmenttab.
  
  但是我不解的是,为什么在前几个星期的测试中没有这个成绩,而在最近几天,出现的越来越频繁呢?
  
  在网上找了几篇相干的文章(有好多论坛上的帖子也有探讨这个成绩的,但我没能找到处理答案):
  
  思索几小工夫后,我想会不会是不能建设暂时文件的缘由呢?其实只需能让谬误在我本人的电脑上出现,那我就好办了,但成绩是,只是偶而出如今我的电脑上,而且很快就好了,从头到尾都只出现过两三次。但在服务器上却出现成绩越来越多了,几分钟就不行了。依据后面的一些文章来剖析,我决议做以下一个测试:
  
  1、删除IIS在Windows下的帐号(InternetGuestAccount)的文件写权限当然,只对名目标目录。
  
  2、同时也删除它在暂时目录(C:\DocumentsandSettings\WEBB-COUNTRY-WU\ASPNET\LocalSettings\Temp,不的机器一切不同)的写权限。
  
  好了,终于在我的电脑上也出现了异样的谬误,而且一切的与数据库相干的页面都不能访问。而且依据MSDN里的阐明,这是由于没有权限在暂时目录里写文件而产生的,与之相反。但是,成绩又在于,服务器上的并不是不断谬误,而是一时谬误一时失常。
  
  惟一可能解释的就是服务器暂时文件满了!!!!而这又不好证实,我不能够不断测试,让我的暂时文件也满了(就算是COPY文件到暂时目录里,也不能算是IIS帐号的,而是操作者的),而且暂时文件它本人(OLEDB的链接线程)也会删除的。只好另外想办法,就是用磁盘配额。给IIS帐号:InternetGuestAccount在C盘只要10K的写权限,然后测试,果然成绩如期而致。。。。。。
  
  到此,可能一定:服务器上的暂时文件太多了,看来是要重新启动一下服务器,或许要清算暂时文件或许调整磁盘空间了……
  
  宿愿这篇文章能协助那些还没有处理成绩的人。同时,MS网站及MSDN上的几篇文章也都还很有协助意义的,顺便是阐明的其它几个谬误缘由……