在ASP.NET將程序中將上傳的附件存儲到另外一臺文件服務器上的實現

假定有兩臺服務器:A和B,其中A爲Web服務器(IP:192.123.1.1, 爲iis發佈程序的服務器 ),B爲文件服務器(IP: 192.123.2.2)windows

  1. 在文件服務器B中某個磁盤下建立一個共享文件夾DocShare,同時在該服務器上建立一個用戶,如docUser, 並給此用戶分配共享文件夾的讀寫權限
  2. 在WEB服務器A中也建立同一個用戶,如 docUser, 同時密碼與B中的docUser必須保持一致。並將用戶docUser加入到IIS_WPG用戶組
  3. 建立一個新的應用程序池docPool, 並設置權限認證,輸入用戶名docUser及密碼。
  4. 將IIS發佈的程序其應用程序池設置爲docPool
  5. 在IIS發佈的程序根目錄下添加一個虛擬目錄,名稱爲files,虛擬目錄映射到服務器B的共享目錄路徑,如:\\192.123.2.2\DocShare 同時設置特定用戶訪問,輸入用戶名docUser,密碼。
  6. 在程序代碼中,設置文件的保存路徑爲 Server.MapPath(「files」) 即:虛擬目錄的路徑。

 

公司服務器使用的掛載盤有問題常常出現數據損壞問題,故須要進行文件備份操做。服務器

備份的數據爲用戶使用應用時上傳的附件,其更新時間爲其上傳時間,而且上傳後不會進行修改操做,因此處理方案爲:先手動複製文件至備份文件目錄下,windows配置定時任務每日晚上11點開始執行備份操做,備份近2天上傳的文件,舊數據不會刪除。測試

 

bat語句以下:.net

ROBOCOPY D:\originalPath D:\backupPath /E /MAXAGE:2 /R:5 /LOG+:D:\backupLog.txt
說明:
路徑前者爲須要備份的文件路徑,後者爲備份路徑。
/E  表示複製子目錄,包括空的子目錄(不設置這個就只複製當前文件夾文件不復制子文件夾)
/MAXAGE:2 表示最長的文件存在時間,排除早於2天的文件(沒有這個就是所有複製)
/R:5 表示失敗副本的重試次數(建議要設,默認值爲一百萬 = =)
/LOG+:D\xxx.txt  將狀態輸出到日誌文件(附加到現有日誌中)
更多用法可在cmd中輸入:help robocopy查看
測試結果說明:
每次運行只拷貝近2天內修改的文件,對早於2天的文件不會進行任何操做。
原目錄下近2天文件被修改,同步時會在相應備份文件中執行一樣的修改操做。
原目錄下文件被刪除,對應的備份文件不受影響。
每次執行後同步了哪些文件可查看日誌。其中,多餘文件和失敗字節數表示備份目錄有、而原目錄沒有的文件。
windows定時任務配置步驟:
可詳見http://blog.csdn.net/woshixuye/article/details/18050769
---------------------
做者:屎大小仙女
來源:CSDN
原文:https://blog.csdn.net/wxzhangxin/article/details/78215347
版權聲明:本文爲博主原創文章,轉載請附上博文連接!日誌

相關文章
相關標籤/搜索