怎樣解決Access數(shù)據(jù)庫(kù)出現(xiàn)0x80004005的問題_Access數(shù)據(jù)庫(kù)教程
推薦:ACCESS的參數(shù)化查詢最近因項(xiàng)目需要用ACCESS做數(shù)據(jù)庫(kù)開發(fā)WEB項(xiàng)目 看論壇上還許多人問及ACCESS被注入的安全問題 許多人解決的方法仍然是用Replace替換特殊字符,然而這樣做也并沒有起到太大做用 今天我就把我用ACCES
這篇論壇文章著重介紹了Access數(shù)據(jù)庫(kù)出現(xiàn)0x80004005問題的解決方法,更多內(nèi)容請(qǐng)參考下文:
項(xiàng)目做了三個(gè)月了,終于也差不多完成了,昨天交去測(cè)試,結(jié)果出現(xiàn)了下面這樣的問題:
[OleDbException (0x80004005): Unspecified error]
System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr) 20
System.Data.OleDb.OleDbConnection.InitializeProvider() 57
System.Data.OleDb.OleDbConnection.Open() 203
Webb.WAVE.Controls.OleDBManager.FillDataTable(DataTable i_dataTable) 85
Webb.WAVE.Controls.WaveExpire.LoadExpireDateForClient(DataTable i_table, Int64 i_clientID) 189
Webb.WAVE.inc_Client_AccessManage.LoadExpireDate(String i_sortKey) 99
Webb.WAVE.inc_Client_AccessManage.Page_Load(Object sender, EventArgs e) 85
System.Web.UI.Control.OnLoad(EventArgs e) 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
說明一下:這個(gè)錯(cuò)誤總會(huì)在運(yùn)行一段時(shí)間后出現(xiàn),而等一會(huì)工(不定多少時(shí)間),或者重新啟動(dòng)IIS或者服務(wù)器,這個(gè)問題就解決了。而再運(yùn)行一會(huì)又會(huì)(時(shí)間越來(lái)越短)出現(xiàn)這個(gè)問題。
而我在自己的電腦是運(yùn)行時(shí),基本上沒出現(xiàn)這樣的問題,于是反復(fù)的查找原因,不得其解,在MSDN里找到了三篇相關(guān)的文章:其中這一篇還有點(diǎn)道理:
SYMPTOMS
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.
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
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).
If TMP/TEMP is defined but points to a nonexistent folder, the error occurs.
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
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.
You must restart the computer after changing any environment variables.
Environment variables are set under Windows NT 4.0 by going to the Control Panel and clicking System and then selecting the Environment tab.
然而我不解的是,為什么在前幾個(gè)星期的測(cè)試中沒有這個(gè)問題,而在最近幾天,出現(xiàn)的越來(lái)越頻繁呢?
在網(wǎng)上找了幾篇相關(guān)的文章(有好多論壇上的帖子也有討論這個(gè)問題的,但我沒能找到解決答案):
思考幾小時(shí)間后,我想會(huì)不會(huì)是不能建立臨時(shí)文件的原因呢?其實(shí)只要能讓錯(cuò)誤在我自己的電腦上出現(xiàn),那我就好辦了,但問題是,只是偶而出現(xiàn)在我的電腦上,而且很快就好了,從頭到尾都只出現(xiàn)過兩三次。但在服務(wù)器上卻出現(xiàn)問題越來(lái)越多了,幾分鐘就不行了。根據(jù)前面的一些文章來(lái)分析,我決定做以下一個(gè)測(cè)試:
1、刪除IIS在Windows下的帳號(hào)(Internet Guest Account)的文件寫權(quán)限當(dāng)然,只對(duì)項(xiàng)目的目錄。
2、同時(shí)也刪除它在臨時(shí)目錄(C:\Documents and Settings\WEBB-COUNTRY-WU\ASPNET\Local Settings\Temp,不的機(jī)器所有不同)的寫權(quán)限。
好了,終于在我的電腦上也出現(xiàn)了同樣的錯(cuò)誤,而且所有的與數(shù)據(jù)庫(kù)相關(guān)的頁(yè)面都不能訪問。而且根據(jù)MSDN里的說明,這是因?yàn)闆]有權(quán)限在臨時(shí)目錄里寫文件而產(chǎn)生的,與之相同。然而,問題又在于,服務(wù)器上的并不是一直錯(cuò)誤,而是一時(shí)錯(cuò)誤一時(shí)正常。
唯一可以解釋的就是服務(wù)器臨時(shí)文件滿了�。。�!而這又不好證明,我不可能一直測(cè)試,讓我的臨時(shí)文件也滿了(就算是COPY文件到臨時(shí)目錄里,也不能算是IIS帳號(hào)的,而是操作者的),而且臨時(shí)文件它自己(OLEDB的鏈接線程)也會(huì)刪除的。只好另外想辦法,就是用磁盤配額。給IIS帳號(hào):Internet Guest Account在C盤只有10K的寫權(quán)限,然后測(cè)試,果然問題如期而致。。。。。。
到此,可以肯定:服務(wù)器上的臨時(shí)文件太多了,看來(lái)是要重新啟動(dòng)一下服務(wù)器,或者要清理臨時(shí)文件或者調(diào)整磁盤空間了……
希望這篇文章能幫助那些還沒有解決問題的人。同時(shí),MS網(wǎng)站及MSDN上的幾篇文章也都還很有幫助意義的,特別是說明的其它幾個(gè)錯(cuò)誤原因。
分享:帶數(shù)據(jù)緩存的ACCESS數(shù)據(jù)庫(kù)操作類主要提供的功能: 1,基本的常用的就不說了 2,數(shù)據(jù)列表輸出,除了奇偶行交替變換顏色之類的列表,其他都可以完成,支持使用函數(shù)對(duì)字段的值進(jìn)行格式化輸出。而且這個(gè)功能的效率應(yīng)
- Access數(shù)據(jù)庫(kù)安全策略之ASP式
- 第N次被ACCESS的關(guān)鍵字涮
- Access中用Jet SQL語(yǔ)句刪除表關(guān)系
- Access報(bào)表打印如何自動(dòng)分頁(yè)
- Access完成累計(jì)余額的計(jì)算
- 搭建Access為主的Mdb數(shù)據(jù)庫(kù)
- 一句sql更新兩個(gè)表并可更新對(duì)應(yīng)的字段值具體實(shí)現(xiàn)
- MySQL查詢優(yōu)化:連接查詢排序limit(join、order by、limit語(yǔ)句)介紹
- 內(nèi)網(wǎng)ssh/mysql登錄緩慢的解決方法
- 使用準(zhǔn)則進(jìn)行條件查詢--1.4.從窗體中選擇查詢的條件
- 中文Access2000速成教程--1.1 使用“向?qū)А痹O(shè)計(jì)數(shù)據(jù)庫(kù)
- 中文Access2000速成教程--1.3 在“設(shè)計(jì)”視圖中設(shè)計(jì)表
Access數(shù)據(jù)庫(kù)教程Rss訂閱編程教程搜索
Access數(shù)據(jù)庫(kù)教程推薦
- 談ACCESS轉(zhuǎn)化為SQL SERVER的注意事項(xiàng)
- ASP Access的安全隱患及對(duì)策
- ACCESS學(xué)習(xí)日記
- 如何讓asp和access數(shù)據(jù)庫(kù)連接?
- 如何保護(hù)Access 2000數(shù)據(jù)庫(kù)的安全
- Access數(shù)據(jù)庫(kù)數(shù)據(jù)傳遞的方法
- Access的控件布局之控件大小
- 談?dòng)肁ccess作網(wǎng)站數(shù)據(jù)庫(kù)的弊端
- 通過查詢返回?cái)?shù)據(jù)庫(kù)對(duì)象的名稱
- 如何獲取access數(shù)據(jù)庫(kù)中表的個(gè)數(shù)及名稱
猜你也喜歡看這些
- 如何打響數(shù)據(jù)庫(kù)保衛(wèi)戰(zhàn) 建一面“銅墻鐵壁”
- Excel和Access間復(fù)制、和導(dǎo)出數(shù)據(jù)
- access數(shù)據(jù)庫(kù)用sql語(yǔ)句添加字段,修改字段,刪除字段
- 淺析在Access中模擬SqlServer存儲(chǔ)過程翻頁(yè)
- 如何用Access輕松打造圖書管理系統(tǒng)
- 使用ACCESS時(shí)最容易忽略的工作
- 揭秘在設(shè)計(jì)視圖中Access允許的九種數(shù)據(jù)類型
- 解決SQL Server轉(zhuǎn)ACCESS自動(dòng)編號(hào)問題
- 揭秘WEB開發(fā)中防止ACCESS數(shù)據(jù)庫(kù)被下載的方法
- Access數(shù)據(jù)庫(kù)中數(shù)據(jù)表的自動(dòng)重新聯(lián)接
- 相關(guān)鏈接:
復(fù)制本頁(yè)鏈接| 搜索怎樣解決Access數(shù)據(jù)庫(kù)出現(xiàn)0x80004005的問題
- 教程說明:
Access數(shù)據(jù)庫(kù)教程-怎樣解決Access數(shù)據(jù)庫(kù)出現(xiàn)0x80004005的問題
。