關於這個異常我們從以下幾個方面討論:
狀況:
昨天做了個項目,在本地測試沒事,可是上傳到伺服器後一開始能訪問,不過當我點擊的速度變快,或多訪問幾次就出錯,這時我發現只是與資料庫互動的頁出現這個異常,而其他的靜態頁都沒事,並且當你重啟應用程式定義域或間隔10分鐘後左右訪問就又沒事了。
環境:
這個異常通常會發生在這樣的一個環境中:(1)國外的伺服器。(2)資料庫是access
處理方法:
這裡我們先不說這個異常產生的原因先來說說處理這個異常的方法:
第一種:MSDN裡的說明,這是因為沒有許可權在臨時目錄裡寫檔案而產生的。這種問題的原因:系統temp檔案夾存取權限不夠修改方法如下:進工具-檔案夾選項-查看-把使用簡單檔案分享權限設定(推薦),關掉。然後進windows/temp,單擊右鍵選擇-屬性,你就會看到一個叫做“安全”的選項,添加一個everyone,使用權限設定為完全控制,再將你正在使用windows的使用者也設定為完全控制,就OK了。
第二種:用ASP.NET的寫的WEB程式,當訪問量過多後,在登入時就會報錯Unspecified error 0x80004005,是連不上資料庫了,尋找了相關原因,是伺服器上IIS向臨時檔案夾寫檔案寫滿了,寫不進去了,要重新啟動一下伺服器,或者要清理臨時檔案或者調整磁碟空間(用磁碟配額。給IIS帳號:Internet Guest Account在C盤足夠大空間的寫入權限) 或者 把臨時檔案夾定義到別的足夠大的磁碟。
第三種(我們真正用到的):不過我們不能按照他說的那樣做,因為我們通常沒有動作伺服器的許可權,所以我們只能從自己的程式上下手,我們要做的是什麼呢?那就是盡量顯示開啟資料庫連接,並且顯示關閉資料庫連接,並且保證開啟時間儘可能的短。
異常產生原因:
通常這個異常會發生國外的空間上並且資料庫是ACCESS,國內不常見.原因是一般開啟國外的空間網速通常會比較慢,開啟時間比較長,從而造成資料庫的串連開啟的時間長,這樣當多個使用者同時登陸網站就會同時操作資料庫,而access的資料庫的並發是不好的,所以就出現這個異常