ASP.Net 應用程序在磁碟空間不足後無法再寫入數據庫
我是一名軟體開發人員,正在解決客戶端生產伺服器上的一個棘手問題,我遇到了一些問題。
他們有一個執行 Windows Server 2008、SQL Server 2008 R1 和 IIS7 的虛擬伺服器。它配備了兩個分區:一個有作業系統(~15 Gig),另一個有 IIS 的網站(另一個~15 Gig)。
執行此伺服器的我的應用程序一直執行良好,直到大約一個小時前,它開始拋出 System.IO.IOException:“磁碟空間不足”。
我的客戶一通知我,我就清理了 C:\ 上的一些空間,清空了資源回收筒,並重新啟動了 SQL Server 和 IIS。Web 伺服器重新啟動並且應用程序正在執行,但它不再將資訊保存到數據庫中。沒有錯誤消息出現,應用程序可以從數據庫中獲取資訊,但它不能再將數據保存回數據庫。我重新啟動了伺服器,沒有效果。
我與託管公司的系統管理員交談,他說 SQL Server 似乎執行良好,並且數據庫未處於只讀模式。我確認了這一點,因為我可以從 SQL Server Management Studio 向表中添加記錄。
嘗試在應用程序中保存已編輯的記錄後,我立即查看了事件日誌,並且沒有新的事件出現在其中。
我假設這與空間不足有關,因為在此之前一切正常,但我有點不知所措到底需要踢褲子才能重新開始。
誰能幫我嗎?這到底是怎麼回事?
編輯:我可以完全訪問伺服器。
編輯:數據庫和日誌文件本身看起來很好,因為我將它們拉到我的工作站執行一些需要在一天結束之前完成的處理。數據被寫入數據庫,在我的機器上沒有任何問題。
我無法解釋解決方案,但這是我今天早上做的兩個動作:
- 昨晚,我獲取了數據庫的副本並將其轉移到我的本地電腦上,以針對它執行一些每天都需要的程序。今天早上,我把它傳回了伺服器,並用這個新副本替換了伺服器的數據庫,以確保在我繼續故障排除之前它擁有所有最新數據;
- 今天早上,我還使用存檔中的備份版本更新了我的應用程序副本。
然後我開始執行更多測試,它再次保存到數據庫中。
謝謝大家的建議!
查看數據庫的數據和日誌文件大小(或讓管理員執行)以及它們是如何分配的。您可以設置數據和日誌文件的最大大小,也可以將它們設置為根據需要自動增長固定數量或目前大小的百分比。在我看來,其中一個或另一個或兩者都沒有設置為自動增長,並且您已經最大化了文件大小。
編輯:
嘗試重新啟動您的應用程序正在執行的應用程序池。或者完全重新啟動 IIS。