簡體   English   中英

c#覆蓋文件,IIS 7.5使用的錯誤文件

[英]c# overwrite file, error file in use by IIS 7.5

我有一個程序可以覆蓋我的網站所需的某些文件集,但是我的網站上的訪問量卻增加了很多,以至於我現在得到了錯誤文件。 這導致它無法更新文件。

該程序每5分鍾運行一次以更新指定的文件。

我讓該程序處理文件而不是程序的原因是因為我還需要將其更新到其他Web服務器(通過ftp)。 通過這種方式,我還確保文件每5分鍾更新一次,而不是在用戶瀏覽頁面時更新。

因此,我的問題是; 我可以告訴IIS7.5在文件更新后(例如5秒鍾到1分鍾)緩存文件嗎? 這應該確保程序下次運行以更新文件時不會遇到任何問題。

最簡單的解決方案是更改刷新文件的程序,以將新信息存儲在數據庫中,而不是文件系統中。

但是,如果您不能使用數據庫,我會采取不同的方法,將文件內容與上次修改的時間一起存儲到System.Web.Caching.Cache中,然后如果不使用緩存版本,則檢查文件是否已更改,以及是否已更改存儲同一緩存變量中的新內容和新時間。

當然,您將必須檢查是否可以讀取文件,然后才能刷新緩存內容;如果無法讀取文件,則只需從緩存中獲取最新版本。

文件的初始讀取必須在application_start中,以確保已初始化緩存,並且在那里您將不得不等到可以讀取文件以將其首次存儲在緩存中。

檢查是否可以從文件讀取的最佳方法是捕獲異常,因為檢查后可能會發生鎖定,請參閱此文章: 如何檢查文件鎖定?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM